biocypher 0.10.1__tar.gz → 0.11.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of biocypher might be problematic. Click here for more details.

Files changed (238) hide show
  1. biocypher-0.11.0/.bumpversion.cfg +10 -0
  2. biocypher-0.11.0/.github/ISSUE_TEMPLATE/1-add-biocypher-component.yaml +121 -0
  3. biocypher-0.11.0/.github/ISSUE_TEMPLATE/2-bug-report.yaml +121 -0
  4. biocypher-0.11.0/.github/ISSUE_TEMPLATE/3-documentation-improvement.yaml +57 -0
  5. biocypher-0.11.0/.github/ISSUE_TEMPLATE/4-feature-request.yaml +71 -0
  6. biocypher-0.11.0/.github/ISSUE_TEMPLATE/config.yaml +9 -0
  7. biocypher-0.11.0/.github/actions/build_docs/action.yaml +12 -0
  8. biocypher-0.11.0/.github/actions/install/action.yaml +30 -0
  9. biocypher-0.11.0/.github/actions/setup/action.yaml +21 -0
  10. biocypher-0.11.0/.github/actions/test/action.yaml +47 -0
  11. biocypher-0.11.0/.github/actions/test_coverage/action.yaml +24 -0
  12. biocypher-0.11.0/.github/workflows/docs_mkdocs.yaml +58 -0
  13. biocypher-0.11.0/.github/workflows/pr.yaml +49 -0
  14. biocypher-0.11.0/.github/workflows/publish.yaml +64 -0
  15. biocypher-0.11.0/.github/workflows/tests_and_code_quality.yaml +40 -0
  16. biocypher-0.11.0/.gitignore +38 -0
  17. biocypher-0.11.0/.pre-commit-config.yaml +36 -0
  18. biocypher-0.11.0/CITATION.cff +25 -0
  19. biocypher-0.11.0/CODE_OF_CONDUCT.md +124 -0
  20. biocypher-0.11.0/CONTRIBUTING.md +12 -0
  21. biocypher-0.11.0/DEVELOPER.md +113 -0
  22. {biocypher-0.10.1 → biocypher-0.11.0}/PKG-INFO +22 -24
  23. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/__init__.py +8 -0
  24. biocypher-0.11.0/biocypher/_graph.py +819 -0
  25. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_metadata.py +21 -8
  26. biocypher-0.11.0/biocypher/_workflow.py +798 -0
  27. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/in_memory/_airr.py +1 -1
  28. biocypher-0.11.0/docs/api.rst +351 -0
  29. biocypher-0.11.0/docs/assets/css/css-v1.1.0.css +1507 -0
  30. biocypher-0.11.0/docs/assets/img/banner-biocypher.png +0 -0
  31. biocypher-0.11.0/docs/assets/img/biochatter-overview-biocypher.png +0 -0
  32. biocypher-0.11.0/docs/assets/img/biocypher-open-graph.png +0 -0
  33. biocypher-0.11.0/docs/assets/img/favicon-biocypher-32px.png +0 -0
  34. biocypher-0.11.0/docs/assets/img/gh-from-biocypher-template-1.png +0 -0
  35. biocypher-0.11.0/docs/assets/img/gh-from-biocypher-template-2.png +0 -0
  36. biocypher-0.11.0/docs/assets/img/gh-from-biocypher-template-3.png +0 -0
  37. biocypher-0.11.0/docs/assets/img/graphical-abstract-biocypher.png +0 -0
  38. biocypher-0.11.0/docs/assets/img/logo-biocypher.png +0 -0
  39. biocypher-0.11.0/docs/assets/img/modularity-biocypher.png +0 -0
  40. biocypher-0.11.0/docs/assets/img/outputs/DBMS-Terminal.png +0 -0
  41. biocypher-0.11.0/docs/assets/img/outputs/DBMS.png +0 -0
  42. biocypher-0.11.0/docs/assets/img/pipeline-biocypher.png +0 -0
  43. biocypher-0.11.0/docs/biocypher-project/biochatter-integration.md +20 -0
  44. biocypher-0.11.0/docs/biocypher-project/design-philosophy.md +68 -0
  45. biocypher-0.11.0/docs/biocypher-project/project.md +9 -0
  46. biocypher-0.11.0/docs/biocypher-project/r-bioc.md +11 -0
  47. biocypher-0.11.0/docs/biocypher-project/use-cases.md +80 -0
  48. biocypher-0.11.0/docs/community/biocypher-docstring-guide.md +995 -0
  49. biocypher-0.11.0/docs/community/contribute-codebase.md +354 -0
  50. biocypher-0.11.0/docs/community/contribute-docs.md +39 -0
  51. biocypher-0.11.0/docs/community/contribute.md +56 -0
  52. biocypher-0.11.0/docs/community/index.md +48 -0
  53. biocypher-0.11.0/docs/community/maintenance.md +404 -0
  54. biocypher-0.11.0/docs/community/release-notes.md +25 -0
  55. biocypher-0.11.0/docs/coverage/.gitkeep +0 -0
  56. biocypher-0.11.0/docs/index.md +37 -0
  57. biocypher-0.11.0/docs/installation.md +229 -0
  58. biocypher-0.11.0/docs/learn/explanation/about-documentation.md +16 -0
  59. biocypher-0.11.0/docs/learn/explanation/adapters.md +117 -0
  60. biocypher-0.11.0/docs/learn/explanation/architecture-migration.md +714 -0
  61. biocypher-0.11.0/docs/learn/explanation/basics-knowledge-graphs.md +7 -0
  62. biocypher-0.11.0/docs/learn/explanation/graph_class_guide.md +699 -0
  63. biocypher-0.11.0/docs/learn/explanation/index.md +19 -0
  64. biocypher-0.11.0/docs/learn/explanation/knowledge-graph-biocypher.md +0 -0
  65. biocypher-0.11.0/docs/learn/explanation/ontologies.md +496 -0
  66. biocypher-0.11.0/docs/learn/guides/htg001_standalone_docker_biocypher.md +77 -0
  67. biocypher-0.11.0/docs/learn/guides/index.md +19 -0
  68. biocypher-0.11.0/docs/learn/quickstart.md +325 -0
  69. biocypher-0.11.0/docs/learn/tutorials/agent_api_guide.md +652 -0
  70. biocypher-0.11.0/docs/learn/tutorials/pandas_tutorial.ipynb +2384 -0
  71. biocypher-0.11.0/docs/learn/tutorials/tutorial001_basics.md +541 -0
  72. biocypher-0.11.0/docs/learn/tutorials/tutorial002_handling_ontologies.md +501 -0
  73. biocypher-0.11.0/docs/learn/tutorials/tutorial003_adapters.md +212 -0
  74. biocypher-0.11.0/docs/llms-adapters.txt +161 -0
  75. biocypher-0.11.0/docs/llms-example-adapter.txt +293 -0
  76. biocypher-0.11.0/docs/llms.md +72 -0
  77. biocypher-0.11.0/docs/llms.txt +154 -0
  78. biocypher-0.11.0/docs/reference/biocypher-config.md +233 -0
  79. biocypher-0.11.0/docs/reference/index.md +45 -0
  80. biocypher-0.11.0/docs/reference/outputs/arangodb-output.md +4 -0
  81. biocypher-0.11.0/docs/reference/outputs/index.md +57 -0
  82. biocypher-0.11.0/docs/reference/outputs/neo4j-output.md +215 -0
  83. biocypher-0.11.0/docs/reference/outputs/networkx-output.md +71 -0
  84. biocypher-0.11.0/docs/reference/outputs/owl-output.md +338 -0
  85. biocypher-0.11.0/docs/reference/outputs/postgresql-output.md +89 -0
  86. biocypher-0.11.0/docs/reference/outputs/rdf-output.md +34 -0
  87. biocypher-0.11.0/docs/reference/outputs/sqlite-output.md +72 -0
  88. biocypher-0.11.0/docs/reference/outputs/tabular-output.md +76 -0
  89. biocypher-0.11.0/docs/reference/schema-config.md +160 -0
  90. biocypher-0.11.0/docs/reference/source/biocypher-workflow.md +522 -0
  91. biocypher-0.11.0/docs/reference/source/biocypher.md +1 -0
  92. biocypher-0.11.0/docs/reference/source/download-cache.md +15 -0
  93. biocypher-0.11.0/docs/reference/source/graph-class.md +611 -0
  94. biocypher-0.11.0/docs/reference/source/graph-handling.md +11 -0
  95. biocypher-0.11.0/docs/reference/source/index.md +128 -0
  96. biocypher-0.11.0/docs/reference/source/logging.md +1 -0
  97. biocypher-0.11.0/docs/reference/source/ontology.md +11 -0
  98. biocypher-0.11.0/docs/reference/source/output-driver.md +7 -0
  99. biocypher-0.11.0/docs/reference/source/output-in-memory.md +15 -0
  100. biocypher-0.11.0/docs/reference/source/output-write.md +29 -0
  101. biocypher-0.11.0/docs/reference/source/translation.md +1 -0
  102. biocypher-0.11.0/docs/reference/source/utils.md +8 -0
  103. biocypher-0.11.0/examples/agent_integration_example.py +404 -0
  104. biocypher-0.11.0/examples/unified_graph_example.py +435 -0
  105. biocypher-0.11.0/mkdocs.nav.yml +70 -0
  106. biocypher-0.11.0/mkdocs.yml +170 -0
  107. biocypher-0.11.0/paper.md +145 -0
  108. {biocypher-0.10.1 → biocypher-0.11.0}/pyproject.toml +49 -51
  109. biocypher-0.11.0/test/__init__.py +0 -0
  110. biocypher-0.11.0/test/conftest.py +83 -0
  111. biocypher-0.11.0/test/fixtures/__init__.py +0 -0
  112. biocypher-0.11.0/test/fixtures/arangodb.py +21 -0
  113. biocypher-0.11.0/test/fixtures/core.py +55 -0
  114. biocypher-0.11.0/test/fixtures/csv.py +15 -0
  115. biocypher-0.11.0/test/fixtures/data_generator.py +333 -0
  116. biocypher-0.11.0/test/fixtures/in_memory_kg.py +32 -0
  117. biocypher-0.11.0/test/fixtures/neo4j.py +149 -0
  118. biocypher-0.11.0/test/fixtures/networkx_writer.py +14 -0
  119. biocypher-0.11.0/test/fixtures/ontology.py +93 -0
  120. biocypher-0.11.0/test/fixtures/owl.py +41 -0
  121. biocypher-0.11.0/test/fixtures/postgres.py +117 -0
  122. biocypher-0.11.0/test/fixtures/rdf.py +40 -0
  123. biocypher-0.11.0/test/fixtures/sqlite.py +36 -0
  124. biocypher-0.11.0/test/ontologies/go.owl +788 -0
  125. biocypher-0.11.0/test/ontologies/missing_label.ttl +15 -0
  126. biocypher-0.11.0/test/ontologies/mondo.owl +1185 -0
  127. biocypher-0.11.0/test/ontologies/multiple_parent_nodes.owl +63 -0
  128. biocypher-0.11.0/test/ontologies/multiple_parent_nodes.ttl +49 -0
  129. biocypher-0.11.0/test/ontologies/ontology1.ttl +41 -0
  130. biocypher-0.11.0/test/ontologies/ontology2.ttl +33 -0
  131. biocypher-0.11.0/test/ontologies/reverse_labels.ttl +17 -0
  132. biocypher-0.11.0/test/ontologies/sem.file +374 -0
  133. biocypher-0.11.0/test/ontologies/so.owl +201 -0
  134. biocypher-0.11.0/test/output/__init__.py +0 -0
  135. biocypher-0.11.0/test/output/connect/__init__.py +0 -0
  136. biocypher-0.11.0/test/output/connect/test_driver.py +326 -0
  137. biocypher-0.11.0/test/output/in_memory/__init__.py +0 -0
  138. biocypher-0.11.0/test/output/in_memory/test_airr.py +406 -0
  139. biocypher-0.11.0/test/output/in_memory/test_networkx.py +358 -0
  140. biocypher-0.11.0/test/output/in_memory/test_pandas.py +76 -0
  141. biocypher-0.11.0/test/output/write/__init__.py +0 -0
  142. biocypher-0.11.0/test/output/write/graph/__init__.py +0 -0
  143. biocypher-0.11.0/test/output/write/graph/test_arango.py +101 -0
  144. biocypher-0.11.0/test/output/write/graph/test_neo4j.py +1110 -0
  145. biocypher-0.11.0/test/output/write/graph/test_networkx.py +87 -0
  146. biocypher-0.11.0/test/output/write/graph/test_owl.py +235 -0
  147. biocypher-0.11.0/test/output/write/graph/test_rdf.py +208 -0
  148. biocypher-0.11.0/test/output/write/relational/__init__.py +0 -0
  149. biocypher-0.11.0/test/output/write/relational/test_csv.py +94 -0
  150. biocypher-0.11.0/test/output/write/relational/test_postgres.py +361 -0
  151. biocypher-0.11.0/test/output/write/relational/test_sqlite.py +79 -0
  152. biocypher-0.11.0/test/profile_performance.py +267 -0
  153. biocypher-0.11.0/test/rdflib_playground.py +104 -0
  154. biocypher-0.11.0/test/test_CSVs.zip +0 -0
  155. biocypher-0.11.0/test/test_config.py +14 -0
  156. biocypher-0.11.0/test/test_core.py +142 -0
  157. biocypher-0.11.0/test/test_create.py +40 -0
  158. biocypher-0.11.0/test/test_deduplicate.py +112 -0
  159. biocypher-0.11.0/test/test_get.py +412 -0
  160. biocypher-0.11.0/test/test_graph.py +663 -0
  161. biocypher-0.11.0/test/test_integration.py +95 -0
  162. biocypher-0.11.0/test/test_mapping.py +21 -0
  163. biocypher-0.11.0/test/test_misc.py +91 -0
  164. biocypher-0.11.0/test/test_ontology.py +356 -0
  165. biocypher-0.11.0/test/test_translate.py +578 -0
  166. biocypher-0.11.0/test/test_workflow.py +1062 -0
  167. biocypher-0.11.0/tutorial/01__basic_import.py +31 -0
  168. biocypher-0.11.0/tutorial/01_biocypher_config.yaml +5 -0
  169. biocypher-0.11.0/tutorial/01_biocypher_config_pandas.yaml +3 -0
  170. biocypher-0.11.0/tutorial/01_schema_config.yaml +4 -0
  171. biocypher-0.11.0/tutorial/02__merge.py +38 -0
  172. biocypher-0.11.0/tutorial/02_biocypher_config.yaml +5 -0
  173. biocypher-0.11.0/tutorial/02_biocypher_config_pandas.yaml +3 -0
  174. biocypher-0.11.0/tutorial/02_schema_config.yaml +4 -0
  175. biocypher-0.11.0/tutorial/03__implicit_subclass.py +38 -0
  176. biocypher-0.11.0/tutorial/03_biocypher_config.yaml +5 -0
  177. biocypher-0.11.0/tutorial/03_biocypher_config_pandas.yaml +3 -0
  178. biocypher-0.11.0/tutorial/03_schema_config.yaml +4 -0
  179. biocypher-0.11.0/tutorial/04__properties.py +38 -0
  180. biocypher-0.11.0/tutorial/04_biocypher_config.yaml +5 -0
  181. biocypher-0.11.0/tutorial/04_biocypher_config_pandas.yaml +3 -0
  182. biocypher-0.11.0/tutorial/04_schema_config.yaml +9 -0
  183. biocypher-0.11.0/tutorial/05__property_inheritance.py +43 -0
  184. biocypher-0.11.0/tutorial/05_biocypher_config.yaml +5 -0
  185. biocypher-0.11.0/tutorial/05_biocypher_config_pandas.yaml +3 -0
  186. biocypher-0.11.0/tutorial/05_schema_config.yaml +16 -0
  187. biocypher-0.11.0/tutorial/06__relationships.py +65 -0
  188. biocypher-0.11.0/tutorial/06_biocypher_config.yaml +5 -0
  189. biocypher-0.11.0/tutorial/06_biocypher_config_pandas.yaml +3 -0
  190. biocypher-0.11.0/tutorial/06_schema_config.yaml +25 -0
  191. biocypher-0.11.0/tutorial/06_schema_config_pandas.yaml +25 -0
  192. biocypher-0.11.0/tutorial/07__synonyms.py +67 -0
  193. biocypher-0.11.0/tutorial/07_biocypher_config.yaml +6 -0
  194. biocypher-0.11.0/tutorial/07_biocypher_config_pandas.yaml +3 -0
  195. biocypher-0.11.0/tutorial/07_schema_config.yaml +31 -0
  196. biocypher-0.11.0/tutorial/data_generator.py +293 -0
  197. biocypher-0.11.0/uv.lock +4029 -0
  198. {biocypher-0.10.1 → biocypher-0.11.0}/LICENSE +0 -0
  199. {biocypher-0.10.1 → biocypher-0.11.0}/README.md +0 -0
  200. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_config/__init__.py +0 -0
  201. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_config/biocypher_config.yaml +0 -0
  202. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_config/test_config.yaml +0 -0
  203. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_config/test_schema_config.yaml +0 -0
  204. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_config/test_schema_config_disconnected.yaml +0 -0
  205. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_config/test_schema_config_extended.yaml +0 -0
  206. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_core.py +0 -0
  207. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_create.py +0 -0
  208. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_deduplicate.py +0 -0
  209. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_get.py +0 -0
  210. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_logger.py +0 -0
  211. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_mapping.py +0 -0
  212. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_misc.py +0 -0
  213. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_ontology.py +0 -0
  214. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/_translate.py +0 -0
  215. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/__init__.py +0 -0
  216. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/connect/__init__.py +0 -0
  217. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/connect/_get_connector.py +0 -0
  218. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/connect/_neo4j_driver.py +0 -0
  219. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/in_memory/__init__.py +0 -0
  220. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/in_memory/_get_in_memory_kg.py +0 -0
  221. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/in_memory/_in_memory_kg.py +0 -0
  222. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/in_memory/_networkx.py +0 -0
  223. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/in_memory/_pandas.py +0 -0
  224. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/__init__.py +0 -0
  225. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/_batch_writer.py +0 -0
  226. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/_get_writer.py +0 -0
  227. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/_writer.py +0 -0
  228. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/graph/__init__.py +0 -0
  229. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/graph/_airr.py +0 -0
  230. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/graph/_arangodb.py +0 -0
  231. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/graph/_neo4j.py +0 -0
  232. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/graph/_networkx.py +0 -0
  233. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/graph/_owl.py +0 -0
  234. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/graph/_rdf.py +0 -0
  235. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/relational/__init__.py +0 -0
  236. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/relational/_csv.py +0 -0
  237. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/relational/_postgresql.py +0 -0
  238. {biocypher-0.10.1 → biocypher-0.11.0}/biocypher/output/write/relational/_sqlite.py +0 -0
@@ -0,0 +1,10 @@
1
+ [bumpversion]
2
+ current_version = 0.11.0
3
+ commit = True
4
+ tag = True
5
+ parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)
6
+ serialize = {major}.{minor}.{patch}
7
+
8
+ [bumpversion:file:pyproject.toml]
9
+
10
+ [bumpversion:file:biocypher/_metadata.py]
@@ -0,0 +1,121 @@
1
+ name: 🏗️ Add New Component
2
+ description: Add a new BioCypher component (input, output, ontology, pipeline) to the overview board.
3
+
4
+ title: "[Component Name]"
5
+ projects: ["biocypher/3"]
6
+
7
+ body:
8
+ - type: markdown
9
+ attributes:
10
+ value: |
11
+ Thanks for taking the time to add a new component to our board!
12
+
13
+ #---------------- Component type for BioCypher --------------
14
+ - type: dropdown
15
+ id: type
16
+ attributes:
17
+ label: What is the type of your adapter?
18
+ multiple: false
19
+ description: Can be any of input, output, ontology, or pipeline.
20
+ options:
21
+ - Input
22
+ - Output
23
+ - Ontology
24
+ - Pipeline
25
+ validations:
26
+ required: true
27
+
28
+ #---------------- Adapter Granularity --------------
29
+ - type: dropdown
30
+ id: granularity
31
+ attributes:
32
+ label: Adapter Granularity
33
+ multiple: false
34
+ description: Does your adapter connect to one single original resource (primary), or is the resource already a composite of multiple original resources (secondary)?
35
+ options:
36
+ - Primary
37
+ - Secondary
38
+ - NA (e.g., Pipeline)
39
+ validations:
40
+ required: true
41
+
42
+ #---------------- Adapter Format --------------
43
+ - type: dropdown
44
+ id: format
45
+ attributes:
46
+ label: Adapter Format
47
+ description: Which format does the adapter ingest or output?
48
+ multiple: false
49
+ options:
50
+ - ArangoDB
51
+ - Flat file(s) such as CSV
52
+ - Neo4j
53
+ - OWL
54
+ - Parquet
55
+ - Python (objects)
56
+ - RDF
57
+ - SQL
58
+ - Some API
59
+ - NA
60
+ - Other (state below)
61
+ validations:
62
+ required: true
63
+
64
+ #---------------- Adapter Resource Origin --------------
65
+ - type: textarea
66
+ id: resource-url
67
+ attributes:
68
+ label: Resource URL
69
+ description: Under which URL can the primary resource be found (could be a homepage, GitHub repository, docs, FTP folder, etc)?
70
+ render: shell
71
+ validations:
72
+ required: true
73
+
74
+ #---------------- Adapter Repository Description --------------
75
+ - type: textarea
76
+ id: adapter-url
77
+ attributes:
78
+ label: Adapter URL
79
+ description: Where can the adapter code be found?
80
+ render: shell
81
+ validations:
82
+ required: true
83
+
84
+ #---------------- Adapter Repository Description --------------
85
+ - type: dropdown
86
+ id: adapter-type
87
+ attributes:
88
+ label: Adapter Type
89
+ description: Is the resource a database or an ontology?
90
+ options:
91
+ - Database
92
+ - Ontology
93
+ - NA (e.g., Pipeline)
94
+ validations:
95
+ required: true
96
+
97
+ #---------------- Adapter Data Description --------------
98
+ - type: textarea
99
+ id: data-type
100
+ attributes:
101
+ label: Data Type
102
+ description: What kind of data is subject of the adapter? Can be a single category (Proteomics, Genetics, etc) in the case of primary adapters, or "Mixed" in some secondary adapters.
103
+ render: shell
104
+ validations:
105
+ required: true
106
+
107
+ #-------------- Code of Conduct --------------
108
+ - type: checkboxes
109
+ id: terms
110
+ attributes:
111
+ label: Code of Conduct
112
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/biocypher/biocypher/blob/main/CODE_OF_CONDUCT.md).
113
+ options:
114
+ - label: I agree to follow this project's Code of Conduct
115
+ required: true
116
+
117
+
118
+ - type: markdown
119
+ attributes:
120
+ value: >
121
+ Thank you for your contribution! 🎉 – The BioCypher Team
@@ -0,0 +1,121 @@
1
+ name: 🪳 Bug Report
2
+ description: Create a report to help us reproduce and fix the bug
3
+
4
+ title: "[BUG]: "
5
+ labels:
6
+ - "bug"
7
+ - "triage"
8
+
9
+ body:
10
+ - type: markdown
11
+ attributes:
12
+ value: >
13
+ **Before submitting a bug, please make sure the issue hasn't been already addressed by [searching through](https://github.com/biocypher/biocypher/issues).**
14
+ Please write your bug report in English to ensure it can be understood and addressed by the development team.
15
+
16
+ #---------------- Installed From --------------
17
+ - type: dropdown
18
+ id: source
19
+ attributes:
20
+ label: Source
21
+ description: BioCypher has been installed from
22
+ options:
23
+ - conda
24
+ - pip
25
+ - uv
26
+ - poetry
27
+ - other (specify in text)
28
+ validations:
29
+ required: True
30
+
31
+ - type: input
32
+ id: source-other
33
+ attributes:
34
+ label: other source
35
+ placeholder: e.g., from source
36
+
37
+ #-------------- Python version --------------
38
+ - type: input
39
+ id: Python
40
+ attributes:
41
+ label: Python version
42
+ placeholder: e.g., 3.10
43
+ validations:
44
+ required: true
45
+
46
+ #-------------- BioCypher version --------------
47
+ - type: input
48
+ id: biocypher-version
49
+ attributes:
50
+ label: BioCypher version
51
+ placeholder: e.g., biocypher v0.9.1
52
+ validations:
53
+ required: true
54
+
55
+ #-------------- OS Platform and distribution --------------
56
+ - type: input
57
+ id: OS
58
+ attributes:
59
+ label: OS platform and distribution
60
+ placeholder: e.g., Linux Ubuntu 16.04
61
+
62
+ #-------------- Describe the Bug --------------
63
+ - type: textarea
64
+ attributes:
65
+ label: Describe the bug
66
+ description: |
67
+ Please provide a clear and concise description of the bug.
68
+
69
+ If applicable, include a minimal example that allows us to reproduce the error by running the code.
70
+ It's crucial that the snippet is as short and focused as possible, so please remove any unnecessary code
71
+ to help us debug efficiently. We will copy and paste your code, and we expect to see the same result as you did.
72
+ Avoid using external data and make sure to include all relevant imports, etc. For example:
73
+
74
+ ```python
75
+ # All necessary imports at the beginning
76
+ from biocypher import BioCypher
77
+
78
+ # A succinct reproducing example trimmed down to the essential parts:
79
+ bc = BioCypher()
80
+
81
+ bc.write_nodes(nodes_generator()) # Note: the bug is here!
82
+ ```
83
+
84
+ If the code is too lengthy (though we hope it's not), feel free to place it in a public gist and share the link in the issue: https://gist.github.com.
85
+
86
+ Instead of providing the expected results, please paste or describe the actual results you observe. If you encounter an error, include the error message along with the full traceback. It's helpful to wrap error messages in ```` ```triple quotes blocks``` ````.
87
+ placeholder: |
88
+ A clear and concise description of what the bug is.
89
+
90
+ ```python
91
+ # Sample code to reproduce the problem
92
+ ```
93
+
94
+ ```
95
+ The error message you got, with the full traceback.
96
+ ```
97
+ validations:
98
+ required: true
99
+
100
+ #-------------- Relevant LOG Output --------------
101
+ - type: textarea
102
+ id: logs
103
+ attributes:
104
+ label: Relevant LOG output
105
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
106
+ render: shell
107
+
108
+ #-------------- Code of Conduct --------------
109
+ - type: checkboxes
110
+ id: terms
111
+ attributes:
112
+ label: Code of Conduct
113
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/biocypher/biocypher/blob/main/CODE_OF_CONDUCT.md).
114
+ options:
115
+ - label: I agree to follow this project's Code of Conduct
116
+ required: true
117
+
118
+ - type: markdown
119
+ attributes:
120
+ value: >
121
+ Thank you for your contribution! 🎉 – The BioCypher Team
@@ -0,0 +1,57 @@
1
+ name: 📔 Documentation Improvement
2
+ description: Report wrong or missing documentation
3
+
4
+ title: "[DOC]: "
5
+ labels:
6
+ - "docs"
7
+ - "triage"
8
+ projects: ["biocypher/1"]
9
+
10
+ body:
11
+ #---------------- Location of the documentation --------------
12
+ - type: textarea
13
+ id: location
14
+ attributes:
15
+ label: Location of the documentation
16
+ description: >
17
+ Please provide the location of the documentation, e.g. "biocypher.BioCypher.add_nodes()" or the
18
+ URL of the documentation, e.g.
19
+ "https://biocypher.org/latest/reference/source/biocypher/#biocypher.BioCypher.add_nodes"
20
+ placeholder: https://biocypher.org/latest/reference/source/
21
+ validations:
22
+ required: true
23
+
24
+ #---------------- Problem Description --------------
25
+ - type: textarea
26
+ id: problem
27
+ attributes:
28
+ label: Documentation problem
29
+ description: >
30
+ Please provide a description of what documentation you believe needs to be fixed/improved
31
+ validations:
32
+ required: true
33
+
34
+ #---------------- Suggested Fix --------------
35
+ - type: textarea
36
+ id: suggested-fix
37
+ attributes:
38
+ label: Suggested fix for documentation
39
+ description: >
40
+ Please explain the suggested fix and **why** it's better than the existing documentation
41
+ validations:
42
+ required: true
43
+
44
+ #-------------- Code of Conduct --------------
45
+ - type: checkboxes
46
+ id: terms
47
+ attributes:
48
+ label: Code of Conduct
49
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/biocypher/biocypher/blob/main/CODE_OF_CONDUCT.md).
50
+ options:
51
+ - label: I agree to follow this project's Code of Conduct
52
+ required: true
53
+
54
+ - type: markdown
55
+ attributes:
56
+ value: >
57
+ Thank you for your contribution! 🎉 – The BioCypher Team
@@ -0,0 +1,71 @@
1
+ name: ✨ Feature Request
2
+ description: Submit a proposal/request for a new BioCypher feature
3
+
4
+ title: "[FEAT]: "
5
+ labels:
6
+ - "feature"
7
+ projects: ["biocypher/1"]
8
+
9
+ body:
10
+ - type: markdown
11
+ attributes:
12
+ value: >
13
+ **Note:** Please write your bug report in English to ensure it can be understood and addressed by the development team.
14
+
15
+ #-------------- Feature type --------------
16
+ - type: dropdown
17
+ id: feature-type
18
+ attributes:
19
+ label: Feature Type
20
+ description: Please select what type of feature request you would like to propose.
21
+ options:
22
+ - Add new functionality to BioCypher
23
+ - Change existing functionality in BioCypher
24
+ - Remove existing functionality in BioCypher
25
+ multiple: false
26
+ validations:
27
+ required: true
28
+
29
+ #-------------- Feature description and motivation --------------
30
+ - type: textarea
31
+ attributes:
32
+ label: 🚀 The feature and motivation
33
+ description: >
34
+ Provide a clear and concise summary of the proposed feature, including the motivation behind it.
35
+ If your request addresses a specific problem, describe it (e.g., "I'm working on X and need Y to be achievable").
36
+ If this is connected to an existing GitHub issue, please include a link.
37
+ placeholder: |
38
+ **Feature description**
39
+ As a user, I would like the ability to export a graph in OWL (Web Ontology Language) format,
40
+ similar to how pandas provides the `bc.to_pandas()`` function.
41
+
42
+ **Motivation**
43
+ Exporting graphs in OWL (Web Ontology Language) would enable seamless integration with other ontology-based datasets.
44
+ This would enhance my research on Ovarian Cancer treatments by allowing me to merge and analyze structured knowledge
45
+ from multiple sources. OWL's semantic capabilities would facilitate better data interoperability, reasoning, and inference,
46
+ ultimately improving the accuracy and depth of my study.
47
+
48
+ validations:
49
+ required: true
50
+
51
+ #-------------- Additional context --------------
52
+ - type: textarea
53
+ attributes:
54
+ label: Additional context
55
+ description: >
56
+ Add any other context or screenshots about the feature request.
57
+
58
+ #-------------- Code of Conduct --------------
59
+ - type: checkboxes
60
+ id: terms
61
+ attributes:
62
+ label: Code of Conduct
63
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/biocypher/biocypher/blob/main/CODE_OF_CONDUCT.md).
64
+ options:
65
+ - label: I agree to follow this project's Code of Conduct
66
+ required: true
67
+
68
+ - type: markdown
69
+ attributes:
70
+ value: >
71
+ Thank you for your contribution! 🎉 – The BioCypher Team
@@ -0,0 +1,9 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: 👥 BioCypher GitHub Discussions
4
+ url: https://github.com/biocypher/biocypher/discussions
5
+ about: Please ask questions and participate in our long-term discussions here.
6
+
7
+ - name: 🌐 "BioCypher Zulip Channel"
8
+ url: https://biocypher.zulipchat.com/
9
+ about: Please ask for support here.
@@ -0,0 +1,12 @@
1
+ name: 'Build docs'
2
+ description: 'Build docs and run doc tests'
3
+
4
+ runs:
5
+ using: "composite"
6
+ steps:
7
+ - name: Test code snippets in documentation
8
+ run: uv run make doctest --directory docs/
9
+ shell: bash
10
+ - name: Build documentation
11
+ run: uv run make html --directory docs/
12
+ shell: bash
@@ -0,0 +1,30 @@
1
+ name: "Install"
2
+ description: "Install dependencies"
3
+ inputs:
4
+ PYTHON_VERSION:
5
+ description: "Python version"
6
+ default: "3.11"
7
+
8
+
9
+ runs:
10
+ using: "composite"
11
+ steps:
12
+ #----------------------------------------------
13
+ # load cached venv if cache exists
14
+ #----------------------------------------------
15
+ - name: Load cached venv
16
+ id: cached-uv-dependencies
17
+ uses: actions/cache@v3
18
+ with:
19
+ path: .venv
20
+ key: venv-${{ runner.os }}-${{ inputs.PYTHON_VERSION }}-${{ hashFiles('**/uv.lock') }}
21
+ #----------------------------------------------
22
+ # install dependencies if cache does not exist
23
+ #----------------------------------------------
24
+ - name: Install Dependencies
25
+ if: steps.cached-uv-dependencies.outputs.cache-hit != 'true'
26
+ run: uv sync --all-extras
27
+ shell: bash
28
+ - name: Install library
29
+ run: uv sync --all-extras
30
+ shell: bash
@@ -0,0 +1,21 @@
1
+ name: "Setup"
2
+ description: "Setup Python and uv"
3
+ inputs:
4
+ PYTHON_VERSION:
5
+ description: "Python version"
6
+ default: "3.11"
7
+
8
+ runs:
9
+ using: "composite"
10
+ steps:
11
+ - name: Set up Python ${{inputs.PYTHON_VERSION}}
12
+ uses: actions/setup-python@v5
13
+ with:
14
+ python-version: ${{inputs.PYTHON_VERSION}}
15
+ - name: Install uv
16
+ uses: astral-sh/setup-uv@v2
17
+ with:
18
+ version: "latest"
19
+ - name: Check uv installation
20
+ run: uv --version
21
+ shell: bash
@@ -0,0 +1,47 @@
1
+ name: "Test and code quality"
2
+ description: "Run tests and code quality checks"
3
+ inputs:
4
+ NEO4J_VERSION:
5
+ description: "Neo4j version"
6
+
7
+ runs:
8
+ using: "composite"
9
+ steps:
10
+ #----------------------------------------------
11
+ # setup docker containers for testing
12
+ #----------------------------------------------
13
+ # currently only running on Linux due to technical limitations
14
+ # - name: Install Docker
15
+ # uses: douglascamata/setup-docker-macos-action@v1-alpha
16
+ # if: ${{ runner.os == 'macOS' }}
17
+ - name: Start Neo4j Docker
18
+ run: docker run --restart always --publish=7474:7474 --publish=7687:7687 --env NEO4J_AUTH=neo4j/your_password_here --env NEO4J_PLUGINS='["apoc"]' --env=NEO4J_ACCEPT_LICENSE_AGREEMENT=yes -d neo4j:${{ inputs.NEO4J_VERSION }}
19
+ shell: bash
20
+ if: ${{ runner.os == 'Linux' }}
21
+ - name: Start Postgres Docker
22
+ run: docker run --restart always --publish=5432:5432 --env POSTGRES_PASSWORD=postgres -d postgres:11.21-bullseye
23
+ shell: bash
24
+ if: ${{ runner.os == 'Linux' }}
25
+ #----------------------------------------------
26
+ # run tests and code quality checks
27
+ #----------------------------------------------
28
+ - name: Run Tests (Windows)
29
+ run: |
30
+ uv run pytest --version
31
+ uv run pytest --password=your_password_here
32
+ shell: bash
33
+ if: runner.os == 'Windows'
34
+ - name: Run tests (Linux and MacOS)
35
+ run: |
36
+ uv run pytest --version
37
+ uv run pytest --password=your_password_here
38
+ shell: bash
39
+ if: runner.os != 'Windows'
40
+ - name: Check code quality
41
+ uses: pre-commit/action@v3.0.0
42
+ # TODO: enable ruff once it does not throw thousands of errors
43
+ # - name: Run Ruff
44
+ # run: |
45
+ # uv run ruff check .
46
+ # uv run ruff format --check .
47
+ # shell: bash
@@ -0,0 +1,24 @@
1
+ name: 'Test coverage'
2
+ description: 'Check test coverage'
3
+
4
+ inputs:
5
+ token:
6
+ description: 'A Github PAT'
7
+ required: true
8
+
9
+ runs:
10
+ using: "composite"
11
+ steps:
12
+ - name: Generate coverage report
13
+ run: uv run coverage run -m pytest --password=your_password_here
14
+ shell: bash
15
+ - name: Generate coverage badge
16
+ run: uv run coverage-badge -f -o docs/coverage/coverage.svg
17
+ shell: bash
18
+ - name: Commit changes
19
+ uses: s0/git-publish-subdir-action@develop
20
+ env:
21
+ REPO: self
22
+ BRANCH: coverage
23
+ FOLDER: docs/coverage
24
+ GITHUB_TOKEN: ${{ inputs.token }}
@@ -0,0 +1,58 @@
1
+ name: CI Docs BioCypher
2
+ on:
3
+ # No branch triggers - only build docs on tags or manual trigger
4
+ push:
5
+ tags:
6
+ - 'v*' # Run on version tags
7
+ workflow_dispatch: # Allow manual triggering
8
+
9
+ permissions:
10
+ contents: write
11
+
12
+ jobs:
13
+ deploy:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Checkout Repository
17
+ uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0 # Fetch all history for proper versioning
20
+ - name: Configure Git Credentials
21
+ run: |
22
+ git config user.name github-actions[bot]
23
+ git config user.email 41898282+github-actions[bot]@users.noreply.github.com
24
+
25
+ #----------------------------------------------
26
+ # Set-up python and uv
27
+ #----------------------------------------------
28
+ - name: Setup Python and uv
29
+ uses: ./.github/actions/setup
30
+
31
+ #----------------------------------------------
32
+ # Install dependencies
33
+ #----------------------------------------------
34
+ - name: Install dependencies
35
+ uses: ./.github/actions/install
36
+
37
+ #----------------------------------------------
38
+ # Build and deploy documentation
39
+ #----------------------------------------------
40
+ - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
41
+ - uses: actions/cache@v4
42
+ with:
43
+ key: mkdocs-material-${{ env.cache_id }}
44
+ path: .cache
45
+ restore-keys: |
46
+ mkdocs-material-
47
+
48
+ - name: Build documentation
49
+ run: uv run mkdocs build
50
+
51
+ - name: Deploy documentation with mike
52
+ run: |
53
+ # Extract version from pyproject.toml or use a default version
54
+ VERSION=$(uv run python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version']" || echo "latest")
55
+ # Deploy the docs with mike
56
+ uv run mike deploy --push --update-aliases $VERSION latest
57
+ # Set the latest version as default
58
+ uv run mike set-default --push latest
@@ -0,0 +1,49 @@
1
+ name: Tests and code quality checks for pull requests
2
+
3
+ on: [pull_request]
4
+
5
+ jobs:
6
+ tests_and_code_quality:
7
+ strategy:
8
+ fail-fast: true
9
+ matrix:
10
+ os: ["ubuntu-latest", "macos-13", "windows-latest"]
11
+ python-version: ["3.10", "3.11", "3.12"]
12
+ neo4j-version: ["4.4-enterprise", "5.17.0-enterprise"]
13
+ exclude:
14
+ # Windows tests don't use the PostgreSQL/Neo4j Docker containers
15
+ - os: "windows-latest"
16
+ neo4j-version: "4.4-enterprise"
17
+ # https://github.com/biocypher/biocypher/issues/339
18
+ - os: "macos-latest"
19
+ neo4j-version: "4.4-enterprise"
20
+ runs-on: ${{ matrix.os }}
21
+ defaults:
22
+ run:
23
+ shell: bash
24
+
25
+ steps:
26
+ #----------------------------------------------
27
+ # checkout repo and set-up python and uv
28
+ #----------------------------------------------
29
+ - name: Checkout Repository
30
+ uses: actions/checkout@v4
31
+ - name: Setup Python and uv
32
+ uses: ./.github/actions/setup
33
+ with:
34
+ PYTHON_VERSION: ${{ matrix.python-version }}
35
+ #----------------------------------------------
36
+ # install dependencies
37
+ #----------------------------------------------
38
+ - name: Install dependencies
39
+ uses: ./.github/actions/install
40
+ with:
41
+ PYTHON_VERSION: ${{ matrix.python-version }}
42
+
43
+ #----------------------------------------------
44
+ # run tests and code quality checks
45
+ #----------------------------------------------
46
+ - name: Run tests
47
+ uses: ./.github/actions/test
48
+ with:
49
+ NEO4J_VERSION: ${{ matrix.neo4j-version }}