diff --git a/setup.py b/setup.py index 82bf26e..af3fbcc 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,6 @@ import setuptools setuptools.setup( name = 'snscrape', - version = '0.2.0', description = 'A social networking service scraper', author = 'JustAnotherArchivist', url = 'https://github.com/JustAnotherArchivist/snscrape', @@ -13,6 +12,8 @@ setuptools.setup( 'Programming Language :: Python :: 3.6', ], packages = ['snscrape', 'snscrape.modules'], + setup_requires = ['setuptools_scm'], + use_scm_version = True, install_requires = ['requests[socks]', 'lxml', 'beautifulsoup4'], entry_points = { 'console_scripts': [ diff --git a/snscrape/cli.py b/snscrape/cli.py index f57c65c..c875c9e 100644 --- a/snscrape/cli.py +++ b/snscrape/cli.py @@ -7,6 +7,7 @@ import requests.models # Imported in parse_args() after setting up the logger: #import snscrape.base #import snscrape.modules +#import snscrape.version import tempfile @@ -148,7 +149,12 @@ def parse_datetime_arg(arg): def parse_args(): + import snscrape.base + import snscrape.modules + import snscrape.version + parser = argparse.ArgumentParser(formatter_class = argparse.ArgumentDefaultsHelpFormatter) + parser.add_argument('--version', action = 'version', version = f'snscrape {snscrape.version.__version__}') parser.add_argument('-v', '--verbose', '--verbosity', dest = 'verbosity', action = 'count', default = 0, help = 'Increase output verbosity') parser.add_argument('--dump-locals', dest = 'dumpLocals', action = 'store_true', default = False, help = 'Dump local variables on serious log messages (warnings or higher)') parser.add_argument('--retry', '--retries', dest = 'retries', type = int, default = 3, metavar = 'N', @@ -158,8 +164,6 @@ def parse_args(): parser.add_argument('--since', type = parse_datetime_arg, metavar = 'DATETIME', help = 'Only return results newer than DATETIME') subparsers = parser.add_subparsers(dest = 'scraper', help = 'The scraper you want to use') - import snscrape.base - import snscrape.modules classes = snscrape.base.Scraper.__subclasses__() for cls in classes: if cls.name is not None: diff --git a/snscrape/version.py b/snscrape/version.py new file mode 100644 index 0000000..06cdc88 --- /dev/null +++ b/snscrape/version.py @@ -0,0 +1,7 @@ +import pkg_resources + + +try: + __version__ = pkg_resources.get_distribution('snscrape').version +except pkg_resources.DistributionNotFound: + __version__ = None