tlpytools 0.2.0__tar.gz → 0.2.1__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.
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/copilot-instructions.md +2 -2
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/workflows/deploy.yml +1 -1
- {tlpytools-0.2.0 → tlpytools-0.2.1}/CHANGELOG.md +11 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/DEVELOPER_GUIDE.md +4 -4
- {tlpytools-0.2.0 → tlpytools-0.2.1}/PKG-INFO +1 -1
- {tlpytools-0.2.0 → tlpytools-0.2.1}/pyproject.toml +1 -1
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/__init__.py +1 -1
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/orchestrator.py +49 -4
- {tlpytools-0.2.0 → tlpytools-0.2.1}/uv.lock +1 -1
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.env.example +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/skills/README.md +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/skills/prepare-official-release/SKILL.md +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/workflows/code-formatting-pr.yml +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/workflows/code-formatting.yml +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/workflows/test.yml +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.gitignore +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.pre-commit-config.yaml +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/.python-version +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/ENVIRONMENT_VARIABLES.md +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/Makefile +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/README.md +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/adls_server.md +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/azure_credential_manager.md +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/README.md +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/orca_cloud_workflow.drawio +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/orca_detailed_steps.drawio +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/orca_file_structure.drawio +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/orca_local_workflow.drawio +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/orca_main_features.drawio +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/unified_logging.md +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/requirements.txt +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/examples/batchtask.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/examples/data_files/example.csv +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/examples/mydataproject.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/examples/readwritedata.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/examples/unified_logging.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/adls_server.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/azure_credential.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/config.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/data.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/data_store.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/env_config.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/log.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/README.md +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/__init__.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/__main__.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/batch_task_runner.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/cli.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/orca_model_config_barebone.yaml +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/orca_model_config_example.yaml +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/sql_server.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/README.md +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/__init__.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/conftest.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/run_tests.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/test_azure_credential.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/test_basic.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/test_core.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/test_orca_integration.py +0 -0
- {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/test_orca_unit.py +0 -0
|
@@ -98,8 +98,8 @@ Interpretation for agent PRs:
|
|
|
98
98
|
|
|
99
99
|
Observed result:
|
|
100
100
|
- Build succeeds and produces:
|
|
101
|
-
- `dist/tlpytools-0.2.
|
|
102
|
-
- `dist/tlpytools-0.2.
|
|
101
|
+
- `dist/tlpytools-0.2.1.tar.gz`
|
|
102
|
+
- `dist/tlpytools-0.2.1-py3-none-any.whl`
|
|
103
103
|
|
|
104
104
|
### 5) Run
|
|
105
105
|
- ORCA CLI (module form):
|
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to TLPyTools will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.2.1]
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- **ORCA logger naming improvement:**
|
|
9
|
+
- Replaced random UUID-based logger name with a git-aware identifier resolved from the ORCA project working directory
|
|
10
|
+
- Added `_resolve_logger_name()` method to `OrcaLogger` with the following priority:
|
|
11
|
+
1. Git tag pointing at HEAD → `orca_{tag}` (e.g. `orca_v0.3.0`)
|
|
12
|
+
2. Git short SHA (first 7 characters) → `orca_{sha}` (e.g. `orca_a1b2c3d`)
|
|
13
|
+
3. Random session UUID fallback → `session_{uuid8}` (e.g. `session_03d2bb45`)
|
|
14
|
+
- Git version is resolved from `os.getcwd()` (the user's project folder) rather than the tlpytools package directory
|
|
15
|
+
|
|
5
16
|
## [0.2.0]
|
|
6
17
|
|
|
7
18
|
### Changed
|
|
@@ -200,7 +200,7 @@ make check-all
|
|
|
200
200
|
4. Click **"Run workflow"** button
|
|
201
201
|
5. Fill in the required information:
|
|
202
202
|
- **Branch**: Select `main` (or your release branch)
|
|
203
|
-
- **Version number**: Enter the new version (e.g., `0.2.
|
|
203
|
+
- **Version number**: Enter the new version (e.g., `0.2.1`)
|
|
204
204
|
- **Is this a pre-release?**: Check if this is a pre-release version
|
|
205
205
|
|
|
206
206
|
#### 3. Monitor the Release
|
|
@@ -219,7 +219,7 @@ After the workflow completes:
|
|
|
219
219
|
|
|
220
220
|
```bash
|
|
221
221
|
# Verify the package is available on PyPI
|
|
222
|
-
pip install tlpytools==0.2.
|
|
222
|
+
pip install tlpytools==0.2.1 # Replace with your version
|
|
223
223
|
|
|
224
224
|
# Test installation in a fresh environment
|
|
225
225
|
python -c "import tlpytools; print(tlpytools.__version__)"
|
|
@@ -235,8 +235,8 @@ TLPyTools follows semantic versioning (SemVer):
|
|
|
235
235
|
|
|
236
236
|
Examples:
|
|
237
237
|
- `0.1.7` → `0.1.8` (patch release)
|
|
238
|
-
- `0.1.8` → `0.2.
|
|
239
|
-
- `0.2.
|
|
238
|
+
- `0.1.8` → `0.2.1` (minor release)
|
|
239
|
+
- `0.2.1` → `1.0.0` (major release)
|
|
240
240
|
|
|
241
241
|
### Pre-releases
|
|
242
242
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tlpytools
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: TransLink's Python Tools - A comprehensive toolkit for transportation modeling and forecasting
|
|
5
5
|
Project-URL: Homepage, https://github.com/TransLinkForecasting/tlpytools
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/TransLinkForecasting/tlpytools/issues
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tlpytools"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.1"
|
|
8
8
|
description = "TransLink's Python Tools - A comprehensive toolkit for transportation modeling and forecasting"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10.0, <3.13"
|
|
@@ -120,10 +120,8 @@ class OrcaLogger:
|
|
|
120
120
|
|
|
121
121
|
def _setup_logger(self):
|
|
122
122
|
"""Set up the logger with consistent formatting and handlers."""
|
|
123
|
-
#
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
logger_name = f"orca_{uuid.uuid4().hex[:8]}"
|
|
123
|
+
# Determine logger name from git tag, git SHA, or random session ID
|
|
124
|
+
logger_name = self._resolve_logger_name()
|
|
127
125
|
|
|
128
126
|
# Create logger
|
|
129
127
|
self._logger = logging.getLogger(logger_name)
|
|
@@ -172,6 +170,53 @@ class OrcaLogger:
|
|
|
172
170
|
|
|
173
171
|
self._logger.info("=" * 80)
|
|
174
172
|
|
|
173
|
+
def _resolve_logger_name(self) -> str:
|
|
174
|
+
"""
|
|
175
|
+
Resolve a stable logger name using git metadata when available.
|
|
176
|
+
|
|
177
|
+
Priority:
|
|
178
|
+
1. Git tag pointing at HEAD -> f"orca_{tag}"
|
|
179
|
+
2. Git SHA (first 7 chars) -> f"orca_{sha}"
|
|
180
|
+
3. Random session UUID -> f"session_{uuid8}"
|
|
181
|
+
"""
|
|
182
|
+
project_cwd = os.getcwd()
|
|
183
|
+
try:
|
|
184
|
+
# Priority 1: git tag pointing exactly at HEAD
|
|
185
|
+
tag_result = subprocess.run(
|
|
186
|
+
["git", "describe", "--tags", "--exact-match", "HEAD"],
|
|
187
|
+
capture_output=True,
|
|
188
|
+
text=True,
|
|
189
|
+
timeout=5,
|
|
190
|
+
cwd=project_cwd,
|
|
191
|
+
)
|
|
192
|
+
if tag_result.returncode == 0:
|
|
193
|
+
git_version = tag_result.stdout.strip()
|
|
194
|
+
if git_version:
|
|
195
|
+
return f"orca_{git_version}"
|
|
196
|
+
except Exception:
|
|
197
|
+
pass
|
|
198
|
+
|
|
199
|
+
try:
|
|
200
|
+
# Priority 2: short git SHA (7 characters)
|
|
201
|
+
sha_result = subprocess.run(
|
|
202
|
+
["git", "rev-parse", "--short=7", "HEAD"],
|
|
203
|
+
capture_output=True,
|
|
204
|
+
text=True,
|
|
205
|
+
timeout=5,
|
|
206
|
+
cwd=project_cwd,
|
|
207
|
+
)
|
|
208
|
+
if sha_result.returncode == 0:
|
|
209
|
+
git_sha = sha_result.stdout.strip()
|
|
210
|
+
if git_sha:
|
|
211
|
+
return f"orca_{git_sha}"
|
|
212
|
+
except Exception:
|
|
213
|
+
pass
|
|
214
|
+
|
|
215
|
+
# Priority 3: random session UUID fallback
|
|
216
|
+
import uuid
|
|
217
|
+
|
|
218
|
+
return f"session_{uuid.uuid4().hex[:8]}"
|
|
219
|
+
|
|
175
220
|
def _log_system_info(self):
|
|
176
221
|
"""
|
|
177
222
|
Log detailed system information.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|