From 79ac7d2e1ed1515246cc8892b178cefb1e11e7ce Mon Sep 17 00:00:00 2001 From: William Bartholomew Date: Tue, 24 Oct 2023 14:55:09 -0700 Subject: [PATCH 01/12] Enable installing via pip Add a pyproject.toml so that pip can install the project directly from GitHub. --- pyproject.toml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..6089626 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,24 @@ +[project] +name = "spec-parser" +version = "0.0.1" +authors = [ + { name="Alexios Zavras", email="github@zvr.gr" }, + { name="Armin Tänzer", email="armin.taenzer@tngtech.com" }, + { name="Gary O'Neall", email="gary@sourceauditor.com" }, + { name="Meret Behrens", email="meret.behrens@tngtech.com" }, + { name="Nirmal Suthar", email="nirmalps@iitk.ac.in" }, + { name="Holger Frydrych", email="holger.frydrych@tngtech.com" }, + { name="William Bartholomew", email="wdb@willbar.com" }, +] +description = "Automagically process the specification" +readme = "README.md" +requires-python = ">=3.7" +classifiers = [ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: Apache Software License", + "Operating System :: OS Independent", +] + +[project.urls] +"Homepage" = "https://github.com/spdx/spec-parser" +"Bug Tracker" = "https://github.com/spdx/spec-parser/issues" From 7cc156012829e48d60c7cba22514d8344ea35d25 Mon Sep 17 00:00:00 2001 From: William Bartholomew Date: Tue, 24 Oct 2023 15:12:48 -0700 Subject: [PATCH 02/12] Restructure for packaging --- pyproject.toml | 3 +++ main.py => spec_parser/__main__.py | 0 2 files changed, 3 insertions(+) rename main.py => spec_parser/__main__.py (100%) diff --git a/pyproject.toml b/pyproject.toml index 6089626..513a323 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,8 @@ [project] name = "spec-parser" +packages = [ + { include = "spec_parser" }, +] version = "0.0.1" authors = [ { name="Alexios Zavras", email="github@zvr.gr" }, diff --git a/main.py b/spec_parser/__main__.py similarity index 100% rename from main.py rename to spec_parser/__main__.py From a7ea18bc2d619c6ae68b0d20972ea85ac82404fa Mon Sep 17 00:00:00 2001 From: William Bartholomew Date: Tue, 24 Oct 2023 15:31:48 -0700 Subject: [PATCH 03/12] Attempt 3 Based on https://pybit.es/articles/how-to-package-and-deploy-cli-apps/ --- pyproject.toml | 30 +++--------------------------- setup.cfg | 18 ++++++++++++++++++ setup.py | 2 ++ 3 files changed, 23 insertions(+), 27 deletions(-) create mode 100644 setup.cfg create mode 100644 setup.py diff --git a/pyproject.toml b/pyproject.toml index 513a323..bf91296 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,27 +1,3 @@ -[project] -name = "spec-parser" -packages = [ - { include = "spec_parser" }, -] -version = "0.0.1" -authors = [ - { name="Alexios Zavras", email="github@zvr.gr" }, - { name="Armin Tänzer", email="armin.taenzer@tngtech.com" }, - { name="Gary O'Neall", email="gary@sourceauditor.com" }, - { name="Meret Behrens", email="meret.behrens@tngtech.com" }, - { name="Nirmal Suthar", email="nirmalps@iitk.ac.in" }, - { name="Holger Frydrych", email="holger.frydrych@tngtech.com" }, - { name="William Bartholomew", email="wdb@willbar.com" }, -] -description = "Automagically process the specification" -readme = "README.md" -requires-python = ">=3.7" -classifiers = [ - "Programming Language :: Python :: 3", - "License :: OSI Approved :: Apache Software License", - "Operating System :: OS Independent", -] - -[project.urls] -"Homepage" = "https://github.com/spdx/spec-parser" -"Bug Tracker" = "https://github.com/spdx/spec-parser/issues" +[build-system] +build-backend = "setuptools.build_meta" +requires = ["setuptools", "wheel"] diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..ccb45b9 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,18 @@ +[metadata] +name = spec_parser +version = 0.0.1 + +[options] +packages = spec_parser +install_requires = + isodate + Jinja2 + MarkupSafe + pyparsing + rdflib + six + sly + +[options.entry_points] +console_scripts = + spec-parser = spec_parser:__main__ diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..8bf1ba9 --- /dev/null +++ b/setup.py @@ -0,0 +1,2 @@ +from setuptools import setup +setup() From 87bb79685fa23953bc5beacc936442367bc75c89 Mon Sep 17 00:00:00 2001 From: William Bartholomew Date: Tue, 24 Oct 2023 15:35:08 -0700 Subject: [PATCH 04/12] Attempt 4 --- setup.cfg | 2 +- spec_parser/__main__.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/setup.cfg b/setup.cfg index ccb45b9..e354a72 100644 --- a/setup.cfg +++ b/setup.cfg @@ -15,4 +15,4 @@ install_requires = [options.entry_points] console_scripts = - spec-parser = spec_parser:__main__ + spec-parser = spec_parser.__main__:main diff --git a/spec_parser/__main__.py b/spec_parser/__main__.py index 3cd5016..c78a2cc 100644 --- a/spec_parser/__main__.py +++ b/spec_parser/__main__.py @@ -47,9 +47,7 @@ def get_args(): return args - -if __name__ == "__main__": - +def main(): args = get_args() if not os.path.isdir(args.spec_dir): @@ -69,3 +67,6 @@ def get_args(): spec.gen_md() if args.gen_rdf: spec.gen_rdf() + +if __name__ == "__main__": + main() From 6742b3d058f90ff831fed9cafa63a77bc4439d2c Mon Sep 17 00:00:00 2001 From: William Bartholomew Date: Tue, 24 Oct 2023 16:04:12 -0700 Subject: [PATCH 05/12] Bundle Jinja templates --- setup.cfg | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index e354a72..d727296 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,9 +1,10 @@ [metadata] name = spec_parser -version = 0.0.1 +version = 0.0.2 [options] packages = spec_parser +include_package_data = True install_requires = isodate Jinja2 @@ -16,3 +17,6 @@ install_requires = [options.entry_points] console_scripts = spec-parser = spec_parser.__main__:main + +[options.package_data] +spec_parser = *.j2 From a020c9215d97d2ad8368af00cba5316d52ee300c Mon Sep 17 00:00:00 2001 From: William Bartholomew Date: Tue, 24 Oct 2023 16:07:15 -0700 Subject: [PATCH 06/12] Try bundling Jinja differently --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index d727296..26e43be 100644 --- a/setup.cfg +++ b/setup.cfg @@ -19,4 +19,4 @@ console_scripts = spec-parser = spec_parser.__main__:main [options.package_data] -spec_parser = *.j2 +spec_parser.templates.default = *.j2 From 66f65d2a7a2c07f770ac9085610b14e944e72f1c Mon Sep 17 00:00:00 2001 From: William Bartholomew Date: Mon, 6 Nov 2023 20:05:14 -0800 Subject: [PATCH 07/12] Try removing level --- setup.cfg | 2 +- spec_parser/templates/{default => }/class.md.j2 | 0 spec_parser/templates/{default => }/property.md.j2 | 0 spec_parser/templates/{default => }/vocab.md.j2 | 0 4 files changed, 1 insertion(+), 1 deletion(-) rename spec_parser/templates/{default => }/class.md.j2 (100%) rename spec_parser/templates/{default => }/property.md.j2 (100%) rename spec_parser/templates/{default => }/vocab.md.j2 (100%) diff --git a/setup.cfg b/setup.cfg index 26e43be..1bb5b17 100644 --- a/setup.cfg +++ b/setup.cfg @@ -19,4 +19,4 @@ console_scripts = spec-parser = spec_parser.__main__:main [options.package_data] -spec_parser.templates.default = *.j2 +spec_parser.templates = *.j2 diff --git a/spec_parser/templates/default/class.md.j2 b/spec_parser/templates/class.md.j2 similarity index 100% rename from spec_parser/templates/default/class.md.j2 rename to spec_parser/templates/class.md.j2 diff --git a/spec_parser/templates/default/property.md.j2 b/spec_parser/templates/property.md.j2 similarity index 100% rename from spec_parser/templates/default/property.md.j2 rename to spec_parser/templates/property.md.j2 diff --git a/spec_parser/templates/default/vocab.md.j2 b/spec_parser/templates/vocab.md.j2 similarity index 100% rename from spec_parser/templates/default/vocab.md.j2 rename to spec_parser/templates/vocab.md.j2 From acec162db8b1517a83d5f01179a05ad1dbaa14b2 Mon Sep 17 00:00:00 2001 From: William Bartholomew Date: Mon, 6 Nov 2023 20:11:25 -0800 Subject: [PATCH 08/12] Fix template path --- spec_parser/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec_parser/utils.py b/spec_parser/utils.py index cf2756d..4fbf3d2 100644 --- a/spec_parser/utils.py +++ b/spec_parser/utils.py @@ -118,7 +118,7 @@ def gen_md(self) -> None: self.logger.warning(f"Overwriting out_dir `{self.args['out_dir']}`") env = Environment( - loader=PackageLoader("spec_parser", package_path="templates/default"), + loader=PackageLoader("spec_parser", package_path="templates"), autoescape=False ) From 0e3f78f084e1d7c7f84d5601c0e7c5083f1eb66d Mon Sep 17 00:00:00 2001 From: William Bartholomew Date: Mon, 6 Nov 2023 20:12:05 -0800 Subject: [PATCH 09/12] Bump version --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 1bb5b17..d34b1d8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = spec_parser -version = 0.0.2 +version = 0.0.3 [options] packages = spec_parser From bd0db50852449f4bd708f6e1104e5f1663a158ba Mon Sep 17 00:00:00 2001 From: William Bartholomew Date: Mon, 6 Nov 2023 20:24:24 -0800 Subject: [PATCH 10/12] Test --- setup.cfg | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.cfg b/setup.cfg index d34b1d8..0efafa5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,10 +1,9 @@ [metadata] name = spec_parser -version = 0.0.3 +version = 0.0.4 [options] packages = spec_parser -include_package_data = True install_requires = isodate Jinja2 From 1743128d0872dba4eae9e95201184446e5602eb3 Mon Sep 17 00:00:00 2001 From: Jeff Licquia Date: Wed, 8 Nov 2023 21:38:28 -0500 Subject: [PATCH 11/12] Fix packaging problems. * Move setup.cfg info to pyproject.toml. * Add explicit inclusion of template files to pyproject.toml. Signed-off-by: Jeff Licquia --- pyproject.toml | 19 +++++++++++++++++++ setup.cfg | 21 --------------------- 2 files changed, 19 insertions(+), 21 deletions(-) delete mode 100644 setup.cfg diff --git a/pyproject.toml b/pyproject.toml index bf91296..7686037 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,22 @@ [build-system] build-backend = "setuptools.build_meta" requires = ["setuptools", "wheel"] + +[project] +name = "spec_parser" +version = "0.0.4" +dependencies = [ + "isodate", + "Jinja2", + "MarkupSafe", + "pyparsing", + "rdflib", + "six", + "sly", +] + +[project.scripts] +spec-parser = "spec_parser.__main__:main" + +[tool.setuptools.package-data] +"spec_parser.templates" = ["*.j2"] diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 0efafa5..0000000 --- a/setup.cfg +++ /dev/null @@ -1,21 +0,0 @@ -[metadata] -name = spec_parser -version = 0.0.4 - -[options] -packages = spec_parser -install_requires = - isodate - Jinja2 - MarkupSafe - pyparsing - rdflib - six - sly - -[options.entry_points] -console_scripts = - spec-parser = spec_parser.__main__:main - -[options.package_data] -spec_parser.templates = *.j2 From a0bab821869e7f30da28d3c564fe11eafd407b33 Mon Sep 17 00:00:00 2001 From: Jeff Licquia Date: Sun, 17 Dec 2023 18:52:29 -0500 Subject: [PATCH 12/12] Fix up documentation and remove the obsolete requirements.txt file. Signed-off-by: Jeff Licquia --- README.md | 10 ++++++++-- docs/md_docs/getting_started.md | 10 ++++++++-- requirements.txt | 7 ------- 3 files changed, 16 insertions(+), 11 deletions(-) delete mode 100644 requirements.txt diff --git a/README.md b/README.md index c3af4ce..f743c69 100644 --- a/README.md +++ b/README.md @@ -18,13 +18,19 @@ Automagically process the specification ## Installing dependencies ``` -❯ python3 -m pip install -r requirements.txt +❯ python3 setup.py install +``` + +or: + +``` +❯ pip install git+https://github.com/spdx/spec-parser ``` ## Usage ``` -❯ python main.py -h +❯ spec-parser -h usage: spec-parser [-h] [--gen-md] [--gen-refs] [--gen-rdf] [--use-table] [--out-dir OUT_DIR] spec_dir SPDX specification parser diff --git a/docs/md_docs/getting_started.md b/docs/md_docs/getting_started.md index b255405..bae6c13 100755 --- a/docs/md_docs/getting_started.md +++ b/docs/md_docs/getting_started.md @@ -16,13 +16,19 @@ ## Installing dependencies ``` -❯ python3 -m pip install -r requirements.txt +❯ python3 setup.py install +``` + +or: + +``` +❯ pip install git+https://github.com/spdx/spec-parser ``` ## Usage ``` -❯ python main.py -h +❯ spec-parser -h usage: spec-parser [-h] [--gen-md] [--gen-refs] [--gen-rdf] [--use-table] [--out-dir OUT_DIR] spec_dir SPDX specification parser diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index fea80c5..0000000 --- a/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -isodate==0.6.0 -Jinja2==3.1.2 -MarkupSafe==2.1.3 -pyparsing==2.4.7 -rdflib==6.0.0 -six==1.16.0 -sly==0.4