quickbase-extract 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 (29) hide show
  1. quickbase_extract-0.1.0/.editorconfig +49 -0
  2. quickbase_extract-0.1.0/.gitignore +68 -0
  3. quickbase_extract-0.1.0/.pre-commit-config.yaml +21 -0
  4. quickbase_extract-0.1.0/.python-version +1 -0
  5. quickbase_extract-0.1.0/CHANGELOG.md +32 -0
  6. quickbase_extract-0.1.0/LICENSE.txt +21 -0
  7. quickbase_extract-0.1.0/PKG-INFO +1735 -0
  8. quickbase_extract-0.1.0/README.md +1708 -0
  9. quickbase_extract-0.1.0/TODO.md +8 -0
  10. quickbase_extract-0.1.0/pyproject.toml +59 -0
  11. quickbase_extract-0.1.0/src/quickbase_extract/__init__.py +98 -0
  12. quickbase_extract-0.1.0/src/quickbase_extract/api_handlers.py +210 -0
  13. quickbase_extract-0.1.0/src/quickbase_extract/cache_freshness.py +199 -0
  14. quickbase_extract-0.1.0/src/quickbase_extract/cache_manager.py +234 -0
  15. quickbase_extract-0.1.0/src/quickbase_extract/cache_sync.py +74 -0
  16. quickbase_extract-0.1.0/src/quickbase_extract/client.py +61 -0
  17. quickbase_extract-0.1.0/src/quickbase_extract/py.typed +0 -0
  18. quickbase_extract-0.1.0/src/quickbase_extract/report_data.py +253 -0
  19. quickbase_extract-0.1.0/src/quickbase_extract/report_metadata.py +316 -0
  20. quickbase_extract-0.1.0/src/quickbase_extract/utils.py +42 -0
  21. quickbase_extract-0.1.0/tests/conftest.py +198 -0
  22. quickbase_extract-0.1.0/tests/test_api_handlers.py +225 -0
  23. quickbase_extract-0.1.0/tests/test_cache_freshness.py +236 -0
  24. quickbase_extract-0.1.0/tests/test_cache_manager.py +308 -0
  25. quickbase_extract-0.1.0/tests/test_cache_sync.py +124 -0
  26. quickbase_extract-0.1.0/tests/test_client.py +170 -0
  27. quickbase_extract-0.1.0/tests/test_report_data.py +395 -0
  28. quickbase_extract-0.1.0/tests/test_report_metadata.py +255 -0
  29. quickbase_extract-0.1.0/tests/test_utils.py +71 -0
@@ -0,0 +1,49 @@
1
+ # EditorConfig is awesome: https://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ # ============================================================
7
+ # All Files
8
+ # ============================================================
9
+ [*]
10
+ charset = utf-8
11
+ end_of_line = lf
12
+ insert_final_newline = true
13
+ trim_trailing_whitespace = true
14
+
15
+ # ============================================================
16
+ # Python Files
17
+ # ============================================================
18
+ [*.py]
19
+ indent_style = space
20
+ indent_size = 4
21
+ max_line_length = 120
22
+
23
+ # ============================================================
24
+ # JavaScript / TypeScript
25
+ # ============================================================
26
+ [*.{js,jsx,ts,tsx}]
27
+ indent_style = space
28
+ indent_size = 2
29
+ max_line_length = 120
30
+
31
+ # ============================================================
32
+ # JSON
33
+ # ============================================================
34
+ [*.json]
35
+ indent_style = space
36
+ indent_size = 2
37
+
38
+ # ============================================================
39
+ # YAML
40
+ # ============================================================
41
+ [*.{yml,yaml}]
42
+ indent_style = space
43
+ indent_size = 2
44
+
45
+ # ============================================================
46
+ # Markdown
47
+ # ============================================================
48
+ [*.md]
49
+ trim_trailing_whitespace = false
@@ -0,0 +1,68 @@
1
+ # Virtual environments
2
+ venv/
3
+ .venv/
4
+ env/
5
+
6
+ # Python bytecode
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+
11
+ # Tool caches
12
+ .pytest_cache/
13
+ .mypy_cache/
14
+ .ruff_cache
15
+ .pre-commit/
16
+
17
+ # Environment variables / secrets
18
+ .env
19
+ .env.local
20
+ *.pem
21
+ *.key
22
+ .pypirc
23
+
24
+ # Distribution / packaging
25
+ dist/
26
+ build/
27
+ *.egg-info/
28
+ *.egg
29
+
30
+ # Testing
31
+ .pytest_cache/
32
+ .coverage
33
+ htmlcov/
34
+
35
+ # Editable install metadata
36
+ src/*.egg-info/
37
+
38
+ # Jupyter Notebook checkpoints
39
+ .ipynb_checkpoints/
40
+
41
+ # VS Code workspace settings
42
+ .vscode/
43
+
44
+ # VS Code workspace file
45
+ *.code-workspace
46
+
47
+ # Logs
48
+ *.log
49
+ logs/
50
+
51
+ # Database files
52
+ *.db
53
+ *.sqlite
54
+ *.sqlite3
55
+
56
+ # Node modules
57
+ node_modules/
58
+ npm-debug.log
59
+
60
+ # IDE caches
61
+ .idea/
62
+ *.swp
63
+ *.swo
64
+
65
+ # AWS CLI local config
66
+ .aws/
67
+
68
+ # Project specific
@@ -0,0 +1,21 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v4.5.0
4
+ hooks:
5
+ - id: trailing-whitespace
6
+ - id: end-of-file-fixer
7
+ - id: check-toml # Validates your pyproject.toml
8
+ - id: check-yaml
9
+ - id: debug-statements # Prevents accidental pdb/breakpoint commits
10
+
11
+ - repo: https://github.com/psf/black
12
+ rev: 23.12.1
13
+ hooks:
14
+ - id: black
15
+ language_version: python3.12
16
+
17
+ - repo: https://github.com/astral-sh/ruff-pre-commit
18
+ rev: v0.1.11
19
+ hooks:
20
+ - id: ruff
21
+ args: [--fix]
@@ -0,0 +1 @@
1
+ 3.12.12
@@ -0,0 +1,32 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.0] - 2026-04-19
9
+
10
+ ### Added
11
+
12
+ - Initial release
13
+ - Parallel report fetching with configurable worker threads
14
+ - Local and S3-backed caching for reduced API calls
15
+ - Automatic retry logic with exponential backoff for rate limits
16
+ - AWS Lambda support with S3 cache synchronization
17
+ - Cache monitoring tools for freshness checks
18
+ - Type hints and TypedDict support for better IDE integration
19
+ - Comprehensive error handling and detailed logging
20
+ - Data transformation with field ID to label conversion
21
+ - Support for multiple Quickbase applications
22
+
23
+ ### Features
24
+
25
+ - **Parallel Processing**: Fetch multiple reports concurrently for improved performance
26
+ - **Smart Caching**: Local and S3-backed caching to minimize API calls
27
+ - **Automatic Retries**: Built-in retry logic with exponential backoff for rate limits
28
+ - **Lambda Ready**: First-class support for AWS Lambda with S3 cache sync
29
+ - **Type Safe**: Full type hints with TypedDict for better IDE support
30
+ - **Cache Monitoring**: Tools to check cache freshness and manage stale data
31
+ - **Robust Error Handling**: Comprehensive error handling with detailed logging
32
+ - **Data Transformation**: Automatically converts field IDs to human-readable labels
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Tyler Brezler
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.