aireloom 0.1.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.
Files changed (73) hide show
  1. aireloom-0.1.0/.github/workflows/python-ci.yml +112 -0
  2. aireloom-0.1.0/.gitignore +151 -0
  3. aireloom-0.1.0/PKG-INFO +581 -0
  4. aireloom-0.1.0/README.md +557 -0
  5. aireloom-0.1.0/README_COMPREHENSIVE_ANALYSIS.md +107 -0
  6. aireloom-0.1.0/aireloom_comprehensive_analysis.py +1387 -0
  7. aireloom-0.1.0/docs/advanced/caching.md +108 -0
  8. aireloom-0.1.0/docs/advanced/configuration.md +157 -0
  9. aireloom-0.1.0/docs/advanced/error_handling.md +165 -0
  10. aireloom-0.1.0/docs/advanced/hooks.md +135 -0
  11. aireloom-0.1.0/docs/advanced/rate_limiting.md +80 -0
  12. aireloom-0.1.0/docs/api_reference.md +47 -0
  13. aireloom-0.1.0/docs/authentication.md +151 -0
  14. aireloom-0.1.0/docs/changelog.md +43 -0
  15. aireloom-0.1.0/docs/client.md +3 -0
  16. aireloom-0.1.0/docs/config.md +3 -0
  17. aireloom-0.1.0/docs/configuration.md +103 -0
  18. aireloom-0.1.0/docs/contributing.md +110 -0
  19. aireloom-0.1.0/docs/getting_started.md +191 -0
  20. aireloom-0.1.0/docs/index.md +9 -0
  21. aireloom-0.1.0/docs/installation.md +50 -0
  22. aireloom-0.1.0/docs/models.md +3 -0
  23. aireloom-0.1.0/docs/resources/data_sources.md +5 -0
  24. aireloom-0.1.0/docs/resources/organizations.md +5 -0
  25. aireloom-0.1.0/docs/resources/projects.md +5 -0
  26. aireloom-0.1.0/docs/resources/research_products.md +5 -0
  27. aireloom-0.1.0/docs/resources/scholix.md +5 -0
  28. aireloom-0.1.0/docs/session.md +5 -0
  29. aireloom-0.1.0/docs/usage/data_sources.md +239 -0
  30. aireloom-0.1.0/docs/usage/organizations.md +226 -0
  31. aireloom-0.1.0/docs/usage/projects.md +250 -0
  32. aireloom-0.1.0/docs/usage/research_products.md +265 -0
  33. aireloom-0.1.0/docs/usage/scholix.md +209 -0
  34. aireloom-0.1.0/mkdocs.yml +39 -0
  35. aireloom-0.1.0/pyproject.toml +113 -0
  36. aireloom-0.1.0/simple_example.py +115 -0
  37. aireloom-0.1.0/src/aireloom/__init__.py +59 -0
  38. aireloom-0.1.0/src/aireloom/client.py +229 -0
  39. aireloom-0.1.0/src/aireloom/config.py +75 -0
  40. aireloom-0.1.0/src/aireloom/constants.py +66 -0
  41. aireloom-0.1.0/src/aireloom/endpoints.py +193 -0
  42. aireloom-0.1.0/src/aireloom/models/__init__.py +53 -0
  43. aireloom-0.1.0/src/aireloom/models/base.py +132 -0
  44. aireloom-0.1.0/src/aireloom/models/data_source.py +82 -0
  45. aireloom-0.1.0/src/aireloom/models/organization.py +74 -0
  46. aireloom-0.1.0/src/aireloom/models/project.py +160 -0
  47. aireloom-0.1.0/src/aireloom/models/research_product.py +499 -0
  48. aireloom-0.1.0/src/aireloom/models/scholix.py +176 -0
  49. aireloom-0.1.0/src/aireloom/resources/__init__.py +18 -0
  50. aireloom-0.1.0/src/aireloom/resources/base_client.py +22 -0
  51. aireloom-0.1.0/src/aireloom/resources/data_sources_client.py +288 -0
  52. aireloom-0.1.0/src/aireloom/resources/organizations_client.py +293 -0
  53. aireloom-0.1.0/src/aireloom/resources/projects_client.py +67 -0
  54. aireloom-0.1.0/src/aireloom/resources/research_products_client.py +73 -0
  55. aireloom-0.1.0/src/aireloom/resources/scholix_client.py +236 -0
  56. aireloom-0.1.0/src/aireloom/session.py +139 -0
  57. aireloom-0.1.0/src/aireloom/unwrapper.py +181 -0
  58. aireloom-0.1.0/tests/__init__.py +1 -0
  59. aireloom-0.1.0/tests/conftest.py +15 -0
  60. aireloom-0.1.0/tests/resources/__init__.py +1 -0
  61. aireloom-0.1.0/tests/resources/test_data_sources_client.py +411 -0
  62. aireloom-0.1.0/tests/resources/test_organizations_client.py +373 -0
  63. aireloom-0.1.0/tests/resources/test_projects_client.py +376 -0
  64. aireloom-0.1.0/tests/resources/test_research_products_client.py +437 -0
  65. aireloom-0.1.0/tests/resources/test_scholix_client.py +306 -0
  66. aireloom-0.1.0/tests/test_actual_data.py +328 -0
  67. aireloom-0.1.0/tests/test_auth.py +283 -0
  68. aireloom-0.1.0/tests/test_client.py +38 -0
  69. aireloom-0.1.0/tests/test_config.py +122 -0
  70. aireloom-0.1.0/tests/test_session.py +1288 -0
  71. aireloom-0.1.0/tests/test_unwrapper.py +234 -0
  72. aireloom-0.1.0/tests/verification_script.py +1078 -0
  73. aireloom-0.1.0/uv.lock +1416 -0
@@ -0,0 +1,112 @@
1
+ name: Python CI
2
+
3
+ on:
4
+ push:
5
+ branches: ["main"]
6
+ tags:
7
+ - 'v*.*.*'
8
+ - 'v*.*'
9
+ - 'v*'
10
+ pull_request:
11
+ branches: ["main"]
12
+
13
+ permissions:
14
+ contents: write
15
+
16
+ jobs:
17
+ test:
18
+ runs-on: ubuntu-latest
19
+ strategy:
20
+ matrix:
21
+ python-version: ["3.12"]
22
+
23
+ steps:
24
+ - name: Checkout repository
25
+ uses: actions/checkout@v4
26
+
27
+ - name: Install & setup uv
28
+ uses: astral-sh/setup-uv@v5
29
+ with:
30
+ enable-cache: true
31
+
32
+ - name: Set up Python
33
+ uses: actions/setup-python@v5
34
+ with:
35
+ python-version-file: "pyproject.toml"
36
+
37
+ - name: Install dependencies
38
+ run: |
39
+ uv sync --all-groups --all-extras
40
+
41
+ - name: Lint, format, and fix with ruff
42
+ run: |
43
+ uv run ruff check src/ --fix
44
+ uv run ruff format src/
45
+
46
+ - name: Test with pytest
47
+ run: |
48
+ uv run pytest --cov=myproj tests/
49
+
50
+ - name: Build package
51
+ run: |
52
+ uv build
53
+
54
+
55
+ build-docs:
56
+ runs-on: ubuntu-latest
57
+ needs: test
58
+ steps:
59
+ - name: Checkout repository
60
+ uses: actions/checkout@v4
61
+
62
+ - name: Install & setup uv
63
+ uses: astral-sh/setup-uv@v5
64
+ with:
65
+ enable-cache: true
66
+
67
+ - name: Set up Python
68
+ uses: actions/setup-python@v5
69
+ with:
70
+ python-version-file: "pyproject.toml"
71
+
72
+ - name: Install dependencies
73
+ run: |
74
+ uv sync --all-groups --all-extras
75
+
76
+ - name: Build & deploy docs
77
+ run: |
78
+ uv run mkdocs gh-deploy --force
79
+
80
+ publish-pypi:
81
+ needs: test
82
+ runs-on: ubuntu-latest
83
+ if: startsWith(github.ref, 'refs/tags/')
84
+ environment:
85
+ name: pypi
86
+ url: https://pypi.org/p/bibliofabric
87
+ permissions:
88
+ id-token: write
89
+
90
+ steps:
91
+ - name: Checkout repository
92
+ uses: actions/checkout@v4
93
+
94
+ - name: Install & setup uv
95
+ uses: astral-sh/setup-uv@v5
96
+ with:
97
+ enable-cache: true
98
+
99
+ - name: Set up Python
100
+ uses: actions/setup-python@v5
101
+ with:
102
+ python-version-file: "pyproject.toml"
103
+
104
+ - name: Install dependencies
105
+ run: uv sync --all-groups --all-extras
106
+
107
+
108
+ - name: Build wheel and sdist
109
+ run: uv build
110
+
111
+ - name: Publish package to PyPI
112
+ run: uv publish
@@ -0,0 +1,151 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # openaire api reference
7
+ reference/
8
+
9
+ # analysis results
10
+ aireloom_analysis.db
11
+ DEMO_SUMMARY.md
12
+ *.png
13
+ *.json
14
+
15
+ # C extensions
16
+ *.so
17
+
18
+ # Distribution / packaging
19
+ .Python
20
+ build/
21
+ dist/
22
+ downloads/
23
+ eggs/
24
+ .eggs/
25
+ lib/
26
+ lib64/
27
+ parts/
28
+ sdist/
29
+ var/
30
+ wheels/
31
+ share/python-wheels/
32
+ *.egg-info/
33
+ .installed.cfg
34
+ *.egg
35
+ MANIFEST
36
+
37
+ # PyInstaller
38
+ # Usually these files are written by a python script from a template
39
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
40
+ *.manifest
41
+ *.spec
42
+
43
+ # Installer logs
44
+ pip-log.txt
45
+ pip-delete-this-directory.txt
46
+
47
+ # Unit test / coverage reports
48
+ htmlcov/
49
+ .tox/
50
+ .nox/
51
+ .coverage
52
+ .coverage.*
53
+ .cache
54
+ nosetests.xml
55
+ coverage.xml
56
+ *.cover
57
+ *.py,cover
58
+ .hypothesis/
59
+ .pytest_cache/
60
+
61
+ # Translations
62
+ *.mo
63
+ *.pot
64
+ *.po
65
+
66
+ # Django stuff:
67
+ *.log
68
+ local_settings.py
69
+ db.sqlite3
70
+ db.sqlite3-journal
71
+
72
+ # Flask stuff:
73
+ instance/
74
+ .webassets-cache
75
+
76
+ # Scrapy stuff:
77
+ .scrapy
78
+
79
+ # Sphinx documentation
80
+ docs/_build/
81
+
82
+ # PyBuilder
83
+ target/
84
+
85
+ # Jupyter Notebook
86
+ .ipynb_checkpoints
87
+
88
+ # IPython
89
+ profile_default/
90
+ ipython_config.py
91
+
92
+ # pyenv
93
+ .python-version
94
+
95
+ # pipenv
96
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
97
+ # Pipfile.lock
98
+
99
+ # PEP 582; used by PDM, Poetry and pdm-pep582
100
+ __pypackages__/
101
+
102
+ # Celery stuff
103
+ celerybeat-schedule
104
+ celerybeat.pid
105
+
106
+ # SageMath parsed files
107
+ *.sage.py
108
+
109
+ # Environments
110
+ .env
111
+ .venv
112
+ /env/
113
+ /venv/
114
+ /ENV/
115
+ /env.bak/
116
+ /venv.bak/
117
+ *.env
118
+ secrets.env
119
+
120
+ # Spyder project settings
121
+ .spyderproject
122
+ .spyproject
123
+
124
+ # Rope project settings
125
+ .ropeproject
126
+
127
+ # mkdocs documentation
128
+ /site
129
+
130
+ # mypy
131
+ .mypy_cache/
132
+ .dmypy.json
133
+ dmypy.json
134
+
135
+ # Pyre type checker
136
+ .pyre/
137
+
138
+ # pytype static analysis results
139
+ .pytype/
140
+
141
+ # Cython debug symbols
142
+ cython_debug/
143
+
144
+ # VSCode
145
+ .vscode/
146
+
147
+ # Ruff
148
+ .ruff_cache/
149
+
150
+ # uv
151
+ .uv_cache/