accsyn-python-api 3.0.3__tar.gz → 3.2.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 (44) hide show
  1. accsyn_python_api-3.2.0/PKG-INFO +164 -0
  2. accsyn_python_api-3.2.0/README.md +133 -0
  3. accsyn_python_api-3.2.0/pyproject.toml +87 -0
  4. accsyn_python_api-3.2.0/source/accsyn_api/_devtools.py +31 -0
  5. {accsyn-python-api-3.0.3 → accsyn_python_api-3.2.0}/source/accsyn_api/_version.py +1 -1
  6. accsyn_python_api-3.2.0/source/accsyn_api/session.py +2032 -0
  7. accsyn-python-api-3.0.3/.github/workflows/github-actions-black.yml +0 -11
  8. accsyn-python-api-3.0.3/.gitignore +0 -9
  9. accsyn-python-api-3.0.3/.pre-commit-config.yaml +0 -6
  10. accsyn-python-api-3.0.3/.readthedocs.yaml +0 -22
  11. accsyn-python-api-3.0.3/PKG-INFO +0 -56
  12. accsyn-python-api-3.0.3/README.md +0 -42
  13. accsyn-python-api-3.0.3/doc/_static/accsyn.css +0 -9
  14. accsyn-python-api-3.0.3/doc/api_reference/index.rst +0 -19
  15. accsyn-python-api-3.0.3/doc/api_reference/session.rst +0 -11
  16. accsyn-python-api-3.0.3/doc/clients.rst +0 -163
  17. accsyn-python-api-3.0.3/doc/conf.py +0 -106
  18. accsyn-python-api-3.0.3/doc/datatypes.rst +0 -156
  19. accsyn-python-api-3.0.3/doc/file.rst +0 -266
  20. accsyn-python-api-3.0.3/doc/glossary.rst +0 -80
  21. accsyn-python-api-3.0.3/doc/index.rst +0 -37
  22. accsyn-python-api-3.0.3/doc/installing.rst +0 -32
  23. accsyn-python-api-3.0.3/doc/introduction.rst +0 -50
  24. accsyn-python-api-3.0.3/doc/jobs.rst +0 -385
  25. accsyn-python-api-3.0.3/doc/misc.rst +0 -32
  26. accsyn-python-api-3.0.3/doc/publish.rst +0 -107
  27. accsyn-python-api-3.0.3/doc/queues.rst +0 -91
  28. accsyn-python-api-3.0.3/doc/release_notes.rst +0 -226
  29. accsyn-python-api-3.0.3/doc/render.rst +0 -127
  30. accsyn-python-api-3.0.3/doc/requirements.txt +0 -3
  31. accsyn-python-api-3.0.3/doc/shares.rst +0 -267
  32. accsyn-python-api-3.0.3/doc/users.rst +0 -119
  33. accsyn-python-api-3.0.3/doc/using.rst +0 -180
  34. accsyn-python-api-3.0.3/pyproject.toml +0 -3
  35. accsyn-python-api-3.0.3/readthedocs.yaml +0 -10
  36. accsyn-python-api-3.0.3/setup.cfg +0 -11
  37. accsyn-python-api-3.0.3/setup.py +0 -32
  38. accsyn-python-api-3.0.3/source/accsyn_api/session.py +0 -1539
  39. accsyn-python-api-3.0.3/source/accsyn_python_api.egg-info/PKG-INFO +0 -56
  40. accsyn-python-api-3.0.3/source/accsyn_python_api.egg-info/SOURCES.txt +0 -38
  41. accsyn-python-api-3.0.3/source/accsyn_python_api.egg-info/dependency_links.txt +0 -1
  42. accsyn-python-api-3.0.3/source/accsyn_python_api.egg-info/requires.txt +0 -1
  43. accsyn-python-api-3.0.3/source/accsyn_python_api.egg-info/top_level.txt +0 -1
  44. {accsyn-python-api-3.0.3 → accsyn_python_api-3.2.0}/source/accsyn_api/__init__.py +0 -0
@@ -0,0 +1,164 @@
1
+ Metadata-Version: 2.1
2
+ Name: accsyn-python-api
3
+ Version: 3.2.0
4
+ Summary: A Python API for accsyn programmable fast and secure data delivery software
5
+ Home-page: https://accsyn.com
6
+ License: Apache-2.0
7
+ Keywords: accsyn,api,file-transfer,delivery
8
+ Author: Henrik Norin
9
+ Author-email: support@accsyn.com
10
+ Requires-Python: >=3.8,<4.0
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: Apache Software License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Internet :: File Transfer Protocol (FTP)
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Requires-Dist: requests (>=2.25.0,<3.0.0)
25
+ Project-URL: Bug Tracker, https://github.com/accsyn/accsyn-python-api/issues
26
+ Project-URL: Documentation, https://accsyn-python-api.readthedocs.io
27
+ Project-URL: Repository, https://github.com/accsyn/accsyn-python-api.git
28
+ Project-URL: Support, https://support.accsyn.com
29
+ Description-Content-Type: text/markdown
30
+
31
+ # accsyn-python-api
32
+ Official accsyn fast and secure file delivery Python API
33
+
34
+ Python API support can be found [here](https://support.accsyn.com/workflows/python-api).
35
+
36
+
37
+ Changelog:
38
+ ----------
39
+
40
+ See doc/release_notes.rst
41
+
42
+
43
+ Documentation:
44
+ --------------
45
+
46
+ [https://accsyn-python-api.readthedocs.io/en/latest](https://accsyn-python-api.readthedocs.io/en/latest)
47
+
48
+
49
+ Development Setup:
50
+ ------------------
51
+
52
+ This project uses Poetry for dependency management. To get started:
53
+
54
+ ```bash
55
+ # Install Poetry (if not already installed)
56
+ curl -sSL https://install.python-poetry.org | python3 -
57
+
58
+ # Install dependencies
59
+ poetry install
60
+
61
+ # Install with documentation dependencies
62
+ poetry install --with docs
63
+
64
+ # Activate the virtual environment
65
+ poetry shell
66
+ ```
67
+
68
+ Building Documentation:
69
+ ----------------------
70
+
71
+ To build the documentation locally:
72
+
73
+ ```bash
74
+ # Install with docs dependencies
75
+ poetry install --with docs
76
+
77
+ # Build docs
78
+ cd doc
79
+ poetry run sphinx-build -T -E -b html -d _build/doctrees -D language=en . ../dist/doc
80
+ ```
81
+
82
+ Or use the shorter command:
83
+ ```bash
84
+ poetry run sphinx-build -b html doc dist/doc
85
+ ```
86
+
87
+ Development Tools:
88
+ -----------------
89
+
90
+ ```bash
91
+ # Format code
92
+ poetry run black .
93
+
94
+ ```
95
+
96
+ Testing:
97
+ --------
98
+
99
+ The test suite requires role-specific credential files to test different user permissions,
100
+ Tests will be skipped if the required .env files are not present.
101
+ The tests also requires active accsyn clients running on behalf of the users, to be able to fully
102
+ test file transfers and compute. This requires all tests to run interactively, to be able to action
103
+ prompts that may appear during execution.
104
+
105
+ **Prepare test credentials:**
106
+
107
+ Create three `.env` files in the project root directory, one for each role:
108
+
109
+ 1. `.env.admin` - Admin role credentials
110
+ 2. `.env.employee` - Employee role credentials
111
+ 3. `.env.standard` - Standard (restricted end user) role credentials
112
+
113
+ Each `.env` file should contain:
114
+
115
+ ```bash
116
+ ACCSYN_WORKSPACE=your_workspace
117
+ ACCSYN_API_USER=user@example.com
118
+ ACCSYN_API_KEY=your_api_key
119
+ ```
120
+
121
+ **Run tests:**
122
+
123
+ ```bash
124
+ # Run all tests
125
+ poetry run pytest -x -s
126
+
127
+ # Run with coverage report
128
+ poetry run pytest -x -s --cov=accsyn_api --cov-report=term-missing
129
+
130
+ # Run a specific test file
131
+ poetry run pytest -x -s tests/test_find_entitytypes.py
132
+
133
+ # Some tests have dependencies in form of running clients, run interactively:
134
+ poetry run pytest -x -s tests/test_find_entitytypes.py
135
+
136
+ ```
137
+
138
+ **Categories:** Use `@pytest.mark.base` for tests that create entities; use `@pytest.mark.extended` and `@pytest.mark.order(2)` (or higher) for tests that depend on those entities. Run `pytest -m "base or extended"` to run both in order in one session.
139
+
140
+ **Note:** Tests that require a specific role will be skipped if the corresponding `.env` file is missing.
141
+
142
+
143
+ Building and publishing to PyPi:
144
+ --------------------------------
145
+
146
+ ```bash
147
+ # Build the package
148
+ poetry build
149
+
150
+ # Publish to PyPI (requires authentication)
151
+ poetry publish
152
+
153
+ # Or publish to test PyPI first
154
+ poetry config repositories.testpypi https://test.pypi.org/legacy/
155
+ poetry publish -r testpypi
156
+ ```
157
+
158
+ Poetry can use saved credentials (`poetry config pypi-token.pypi <token>`) or username/password flags such as `poetry publish --username <user> --password <pass>`.
159
+
160
+ accsyn(r) - secure high speed file delivery and workflow sync
161
+ https://accsyn.com
162
+ https://support.accsyn.com
163
+
164
+
@@ -0,0 +1,133 @@
1
+ # accsyn-python-api
2
+ Official accsyn fast and secure file delivery Python API
3
+
4
+ Python API support can be found [here](https://support.accsyn.com/workflows/python-api).
5
+
6
+
7
+ Changelog:
8
+ ----------
9
+
10
+ See doc/release_notes.rst
11
+
12
+
13
+ Documentation:
14
+ --------------
15
+
16
+ [https://accsyn-python-api.readthedocs.io/en/latest](https://accsyn-python-api.readthedocs.io/en/latest)
17
+
18
+
19
+ Development Setup:
20
+ ------------------
21
+
22
+ This project uses Poetry for dependency management. To get started:
23
+
24
+ ```bash
25
+ # Install Poetry (if not already installed)
26
+ curl -sSL https://install.python-poetry.org | python3 -
27
+
28
+ # Install dependencies
29
+ poetry install
30
+
31
+ # Install with documentation dependencies
32
+ poetry install --with docs
33
+
34
+ # Activate the virtual environment
35
+ poetry shell
36
+ ```
37
+
38
+ Building Documentation:
39
+ ----------------------
40
+
41
+ To build the documentation locally:
42
+
43
+ ```bash
44
+ # Install with docs dependencies
45
+ poetry install --with docs
46
+
47
+ # Build docs
48
+ cd doc
49
+ poetry run sphinx-build -T -E -b html -d _build/doctrees -D language=en . ../dist/doc
50
+ ```
51
+
52
+ Or use the shorter command:
53
+ ```bash
54
+ poetry run sphinx-build -b html doc dist/doc
55
+ ```
56
+
57
+ Development Tools:
58
+ -----------------
59
+
60
+ ```bash
61
+ # Format code
62
+ poetry run black .
63
+
64
+ ```
65
+
66
+ Testing:
67
+ --------
68
+
69
+ The test suite requires role-specific credential files to test different user permissions,
70
+ Tests will be skipped if the required .env files are not present.
71
+ The tests also requires active accsyn clients running on behalf of the users, to be able to fully
72
+ test file transfers and compute. This requires all tests to run interactively, to be able to action
73
+ prompts that may appear during execution.
74
+
75
+ **Prepare test credentials:**
76
+
77
+ Create three `.env` files in the project root directory, one for each role:
78
+
79
+ 1. `.env.admin` - Admin role credentials
80
+ 2. `.env.employee` - Employee role credentials
81
+ 3. `.env.standard` - Standard (restricted end user) role credentials
82
+
83
+ Each `.env` file should contain:
84
+
85
+ ```bash
86
+ ACCSYN_WORKSPACE=your_workspace
87
+ ACCSYN_API_USER=user@example.com
88
+ ACCSYN_API_KEY=your_api_key
89
+ ```
90
+
91
+ **Run tests:**
92
+
93
+ ```bash
94
+ # Run all tests
95
+ poetry run pytest -x -s
96
+
97
+ # Run with coverage report
98
+ poetry run pytest -x -s --cov=accsyn_api --cov-report=term-missing
99
+
100
+ # Run a specific test file
101
+ poetry run pytest -x -s tests/test_find_entitytypes.py
102
+
103
+ # Some tests have dependencies in form of running clients, run interactively:
104
+ poetry run pytest -x -s tests/test_find_entitytypes.py
105
+
106
+ ```
107
+
108
+ **Categories:** Use `@pytest.mark.base` for tests that create entities; use `@pytest.mark.extended` and `@pytest.mark.order(2)` (or higher) for tests that depend on those entities. Run `pytest -m "base or extended"` to run both in order in one session.
109
+
110
+ **Note:** Tests that require a specific role will be skipped if the corresponding `.env` file is missing.
111
+
112
+
113
+ Building and publishing to PyPi:
114
+ --------------------------------
115
+
116
+ ```bash
117
+ # Build the package
118
+ poetry build
119
+
120
+ # Publish to PyPI (requires authentication)
121
+ poetry publish
122
+
123
+ # Or publish to test PyPI first
124
+ poetry config repositories.testpypi https://test.pypi.org/legacy/
125
+ poetry publish -r testpypi
126
+ ```
127
+
128
+ Poetry can use saved credentials (`poetry config pypi-token.pypi <token>`) or username/password flags such as `poetry publish --username <user> --password <pass>`.
129
+
130
+ accsyn(r) - secure high speed file delivery and workflow sync
131
+ https://accsyn.com
132
+ https://support.accsyn.com
133
+
@@ -0,0 +1,87 @@
1
+ [build-system]
2
+ requires = ["poetry-core>=1.0.0"]
3
+ build-backend = "poetry.core.masonry.api"
4
+
5
+ [tool.poetry]
6
+ name = "accsyn-python-api"
7
+ version = "3.2.0"
8
+ description = "A Python API for accsyn programmable fast and secure data delivery software"
9
+ authors = ["Henrik Norin <support@accsyn.com>"]
10
+ license = "Apache-2.0"
11
+ readme = "README.md"
12
+ homepage = "https://accsyn.com"
13
+ repository = "https://github.com/accsyn/accsyn-python-api.git"
14
+ documentation = "https://accsyn-python-api.readthedocs.io"
15
+ keywords = ["accsyn", "api", "file-transfer", "delivery"]
16
+ classifiers = [
17
+ "Development Status :: 5 - Production/Stable",
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: Apache Software License",
20
+ "Operating System :: OS Independent",
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3.8",
23
+ "Programming Language :: Python :: 3.9",
24
+ "Programming Language :: Python :: 3.10",
25
+ "Programming Language :: Python :: 3.11",
26
+ "Programming Language :: Python :: 3.12",
27
+ "Topic :: Software Development :: Libraries :: Python Modules",
28
+ "Topic :: Internet :: File Transfer Protocol (FTP)",
29
+ ]
30
+ packages = [{include = "accsyn_api", from = "source"}]
31
+
32
+ [tool.poetry.scripts]
33
+ test = "accsyn_api._devtools:test"
34
+
35
+ [tool.poetry.dependencies]
36
+ python = "^3.8"
37
+ requests = "^2.25.0"
38
+
39
+ [tool.poetry.group.dev]
40
+ optional = true
41
+
42
+ [tool.poetry.group.dev.dependencies]
43
+ black = "^23.0.0"
44
+ isort = "^5.12.0"
45
+ flake8 = "^5.0.0"
46
+ mypy = "^1.0.0"
47
+ pytest = "^7.0.0"
48
+ pytest-cov = "^4.0.0"
49
+ pytest-order = "^1.0.0"
50
+
51
+ [tool.poetry.group.docs]
52
+ optional = true
53
+
54
+ [tool.poetry.group.docs.dependencies]
55
+ sphinx = "^1.2.2"
56
+ sphinx-rtd-theme = "^0.1.6,<1"
57
+ jinja2 = "<3.1"
58
+ lowdown = "^0.1.0,<2"
59
+ tomli = {version = "^2.0.0", python = "<3.11"}
60
+
61
+ [tool.poetry.urls]
62
+ "Bug Tracker" = "https://github.com/accsyn/accsyn-python-api/issues"
63
+ "Support" = "https://support.accsyn.com"
64
+
65
+ [tool.black]
66
+ line-length = 119
67
+ skip-string-normalization = true
68
+ target-version = ['py38']
69
+
70
+ [tool.isort]
71
+ profile = "black"
72
+ line_length = 119
73
+
74
+ [tool.mypy]
75
+ python_version = "3.8"
76
+ warn_return_any = true
77
+ warn_unused_configs = true
78
+ disallow_untyped_defs = true
79
+
80
+ [tool.pytest.ini_options]
81
+ testpaths = ["tests"]
82
+ python_files = ["test_*.py", "*_test.py"]
83
+ addopts = "--cov=accsyn_api --cov-report=term-missing -x"
84
+ markers = [
85
+ "base: Phase 1 tests that create entities (run first).",
86
+ "extended: Phase 2 tests that depend on entities created by base (run after base).",
87
+ ]
@@ -0,0 +1,31 @@
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ import sys
5
+ from pathlib import Path
6
+ from typing import Optional, Sequence
7
+
8
+
9
+ def run_pytest(argv: Optional[Sequence[str]] = None) -> int:
10
+ """
11
+ Run pytest from the repository root, regardless of current working directory.
12
+
13
+ This makes `poetry run test` work even if invoked from e.g. `doc/`.
14
+ """
15
+ repo_root = Path(__file__).resolve().parents[2]
16
+ os.chdir(repo_root)
17
+
18
+ args = list(sys.argv[1:] if argv is None else argv)
19
+ # Ensure we always pick up the project's pytest settings.
20
+ if "-c" not in args and "--config-file" not in args:
21
+ args = ["-c", str(repo_root / "pyproject.toml"), *args]
22
+
23
+ import pytest
24
+
25
+ return pytest.main(args)
26
+
27
+
28
+ def test() -> None:
29
+ """Poetry script entrypoint: `poetry run test [pytest-args...]`."""
30
+ raise SystemExit(run_pytest())
31
+
@@ -1,4 +1,4 @@
1
1
  # :coding: utf-8
2
2
  # :copyright: Copyright (c) 2015-2023 accsyn/HDR AB
3
3
 
4
- __version__ = "2.2.1-0"
4
+ __version__ = "3.2.0-1"