forked from microbiomedata/nmdc-schema
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
134 lines (118 loc) · 5.52 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
[tool.poetry]
description = "Schema resources for the National Microbiome Data Collaborative (NMDC)"
documentation = "https://microbiomedata.github.io/nmdc-schema/"
homepage = "https://microbiomedata.github.io/nmdc-schema/"
keywords = ["NMDC", "schema", "metadata", "microbiome"]
license = "MIT"
name = "nmdc_schema"
readme = "README.md"
repository = "https://github.com/microbiomedata/nmdc-schema"
version = "0.0.0"
authors = [
"Bill Duncan <wdduncan@gmail.com>",
"Chris Mungall <cjmungall@lbl.gov>",
"Mark Andrew Miller <MAM@lbl.gov>",
"Patrick Kalita <pkalita@lbl.gov>",
"Sujay Patil <spatil@lbl.gov>",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Programming Language :: Python :: 3 :: Only",
]
packages = [
{ include = "nmdc_schema" }, # this is the package Poetry would have included by default
{ include = "migrators", from = "nmdc_schema" },
{ include = "adapters", from = "nmdc_schema/migrators" },
]
[tool.poetry.dependencies] # having trouble with mkdocs in docker esp on linux. addits its ecosystem here may be unnecessary
python = "^3.9"
linkml = "^1.7.10"
linkml-runtime = "^1.7.7"
mkdocs = "^1.4.2"
mkdocs-material = "^9.0.12"
mkdocs-mermaid2-plugin = "^0.6.0"
mkdocs-redirects = "^1.2.1"
pymongo = "^4.7.2"
ruamel-yaml = "^0.18.6"
[tool.poetry.group.dev.dependencies] # are some of these actually required as non-dev dependencies? # cruft for cookiecutter update could be installed with pipx?
autopep8 = "^2.2.0"
bandit = "^1.7.8"
black = ">=23.1,<25.0"
click = "^8.1.3"
click-log = "^0.4.0"
exhaustion-check = "^0.1.1" # for exhaustion-check, pretty-sort-yaml (also get-first-of-first)
fastjsonschema = "^2.20.0"
flake8 = "^7.0.0"
isort = "^5.13.2"
mypy = "^1.10.0"
pydocstyle = "^6.3.0"
pylint = "^3.2.2"
pyroma = "^4.2"
python-dotenv = "^0.21.0"
rdflib = "^6.2.0" # some LinkML components are not compatible with rdflib 7+ yet
ruff = "^0.4.7"
schemasheets = "^0.1.24" # was in main dependencies but brings in so much like pandas
sheets_and_friends = "^0.5.0" # for do_shuttle (and possibly more)
sparql-burger = "^1.0.2"
sparql-dataframe = "^0.4"
vulture = "^2.11"
#oaklib = "^0.5.24"
#pydantic = "^1.10.13"
[tool.poetry-dynamic-versioning]
# We need poetry-dynamic-versioning to update the version in the src schema file,
# then generate project artifacts from that schema with the real version populated,
# and then perform any build or publish actions. Since this requires running
# `poetry dynamic-versioning` manually before `poetry build`, we set enable = false.
enable = false
vcs = "git"
style = "pep440"
[tool.poetry-dynamic-versioning.substitution]
files = [
"src/schema/nmdc.yaml"
]
patterns = [
"(^\\s*__version__\\s*(?::.*?)?=\\s*['\\\"])[^'\\\"]*(['\\\"])",
"(^version:\\s*['\\\"]?)[^'\\\"]*?(['\\\"]?)$"
]
[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"]
build-backend = "poetry_dynamic_versioning.backend"
[tool.poetry.extras]
docs = ["mkdocs-material"]
# scripts should have click clis
# click parameters/options should be written out with hyphens
# click parameters/options should use consistent names
# scripts should be listed here in tool.poetry.scripts
# use underscores to delimit file name
# use hyphens to delimit CLI alias
# scripts/aliases should be illustrated in a Makefile
# Makefile targets should make use of $< etc for input and $@ for output
# input and output files should use hyphens as delimters in their names
# check usages of these features in other NMDC code before changing
# be intentional about output: most should go in assets unless its really large or likely to change independently of the schema, like MOngoDB summaries
# cli entry points should probably all be main or cli unless there's a compelling reason to do otherwise
[tool.poetry.scripts]
analyze-mentions-of-ids = "src.scripts.analyze_mentions_of_ids:main"
anyuri-strings-to-iris = 'nmdc_schema.anyuri_strings_to_iris:expand_curies'
check-examples-class-coverage = "src.scripts.check_examples_class_coverage:main"
class-instantiation-counts = "src.scripts.class_instantiation_counts:process_data"
create-migrator = 'nmdc_schema.migrators.cli.create_migrator:create_migrator'
database-to-json-list-files = "src.scripts.database_to_json_list_files:split_yaml_to_json"
date-created-blank-node = "src.scripts.date_created_blank_node:print_timestamp" # prints a RDF Tutrle string, for copying into other RDF/TTL files. may need some paramterizastion.
fetch-nmdc-schema = "nmdc_schema.nmdc_data:get_nmdc_jsonschema" # todo recheck
get-study-id-from-filename = "src.scripts.get_study_id_from_filename:main" # todo not used in makefiles
get-study-related-records = "src.scripts.nmdc_database_tools:cli" # todo recheck
interleave-yaml = "src.scripts.interleave_yaml:process_yaml" # todo recheck
migration-recursion = 'nmdc_schema.migration_recursion:main'
nmdc-data = "nmdc_schema.nmdc_data:cli" # todo recheck
nmdc-ncbi-mapping = "src.scripts.ncbi_nmdc_exact_term_matching:cli"
nmdc-version = "nmdc_schema.nmdc_version:cli" # todo recheck
pure-export = "nmdc_schema.dump_single_modality:cli"
report-biosamples-per-study = "src.scripts.report_biosamples_per_study:query_biosamples"
report-usages = "src.scripts.report_usages:display_slot_usage"
schema-pattern-linting = "src.scripts.schema_pattern_linting:main"
schema-view-relation-graph = "src.scripts.schema_view_relation_graph:cli"
scrutinize-elements = "src.scripts.scrutinize_elements:process_schema_elements"
slot-range-type-reporter = "src.scripts.slot_range_type_reporter:cli"