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.
Files changed (60) hide show
  1. {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/copilot-instructions.md +2 -2
  2. {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/workflows/deploy.yml +1 -1
  3. {tlpytools-0.2.0 → tlpytools-0.2.1}/CHANGELOG.md +11 -0
  4. {tlpytools-0.2.0 → tlpytools-0.2.1}/DEVELOPER_GUIDE.md +4 -4
  5. {tlpytools-0.2.0 → tlpytools-0.2.1}/PKG-INFO +1 -1
  6. {tlpytools-0.2.0 → tlpytools-0.2.1}/pyproject.toml +1 -1
  7. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/__init__.py +1 -1
  8. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/orchestrator.py +49 -4
  9. {tlpytools-0.2.0 → tlpytools-0.2.1}/uv.lock +1 -1
  10. {tlpytools-0.2.0 → tlpytools-0.2.1}/.env.example +0 -0
  11. {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/skills/README.md +0 -0
  12. {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/skills/prepare-official-release/SKILL.md +0 -0
  13. {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/workflows/code-formatting-pr.yml +0 -0
  14. {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/workflows/code-formatting.yml +0 -0
  15. {tlpytools-0.2.0 → tlpytools-0.2.1}/.github/workflows/test.yml +0 -0
  16. {tlpytools-0.2.0 → tlpytools-0.2.1}/.gitignore +0 -0
  17. {tlpytools-0.2.0 → tlpytools-0.2.1}/.pre-commit-config.yaml +0 -0
  18. {tlpytools-0.2.0 → tlpytools-0.2.1}/.python-version +0 -0
  19. {tlpytools-0.2.0 → tlpytools-0.2.1}/ENVIRONMENT_VARIABLES.md +0 -0
  20. {tlpytools-0.2.0 → tlpytools-0.2.1}/Makefile +0 -0
  21. {tlpytools-0.2.0 → tlpytools-0.2.1}/README.md +0 -0
  22. {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/adls_server.md +0 -0
  23. {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/azure_credential_manager.md +0 -0
  24. {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/README.md +0 -0
  25. {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/orca_cloud_workflow.drawio +0 -0
  26. {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/orca_detailed_steps.drawio +0 -0
  27. {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/orca_file_structure.drawio +0 -0
  28. {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/orca_local_workflow.drawio +0 -0
  29. {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/diagrams/orca_main_features.drawio +0 -0
  30. {tlpytools-0.2.0 → tlpytools-0.2.1}/docs/unified_logging.md +0 -0
  31. {tlpytools-0.2.0 → tlpytools-0.2.1}/requirements.txt +0 -0
  32. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/examples/batchtask.py +0 -0
  33. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/examples/data_files/example.csv +0 -0
  34. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/examples/mydataproject.py +0 -0
  35. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/examples/readwritedata.py +0 -0
  36. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/examples/unified_logging.py +0 -0
  37. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/adls_server.py +0 -0
  38. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/azure_credential.py +0 -0
  39. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/config.py +0 -0
  40. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/data.py +0 -0
  41. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/data_store.py +0 -0
  42. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/env_config.py +0 -0
  43. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/log.py +0 -0
  44. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/README.md +0 -0
  45. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/__init__.py +0 -0
  46. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/__main__.py +0 -0
  47. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/batch_task_runner.py +0 -0
  48. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/cli.py +0 -0
  49. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/orca_model_config_barebone.yaml +0 -0
  50. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/orca/orca_model_config_example.yaml +0 -0
  51. {tlpytools-0.2.0 → tlpytools-0.2.1}/src/tlpytools/sql_server.py +0 -0
  52. {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/README.md +0 -0
  53. {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/__init__.py +0 -0
  54. {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/conftest.py +0 -0
  55. {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/run_tests.py +0 -0
  56. {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/test_azure_credential.py +0 -0
  57. {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/test_basic.py +0 -0
  58. {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/test_core.py +0 -0
  59. {tlpytools-0.2.0 → tlpytools-0.2.1}/tests/test_orca_integration.py +0 -0
  60. {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.0.tar.gz`
102
- - `dist/tlpytools-0.2.0-py3-none-any.whl`
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):
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
  inputs:
6
6
  version:
7
- description: 'Version number to release (e.g., 0.2.0)'
7
+ description: 'Version number to release (e.g., 0.2.1)'
8
8
  required: true
9
9
  type: string
10
10
  prerelease:
@@ -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.0`)
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.0 # Replace with your version
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.0` (minor release)
239
- - `0.2.0` → `1.0.0` (major release)
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.0
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.0"
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"
@@ -2,7 +2,7 @@
2
2
  TLPyTools - A set of tools for building models at the TransLink Forecasting Team
3
3
  """
4
4
 
5
- __version__ = "0.2.0"
5
+ __version__ = "0.2.1"
6
6
 
7
7
  # Core modules that should always be available (minimal dependencies)
8
8
  from . import log
@@ -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
- # Create a unique logger name for each instance to avoid conflicts
124
- import uuid
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.
@@ -4601,7 +4601,7 @@ wheels = [
4601
4601
 
4602
4602
  [[package]]
4603
4603
  name = "tlpytools"
4604
- version = "0.2.0"
4604
+ version = "0.2.1"
4605
4605
  source = { editable = "." }
4606
4606
  dependencies = [
4607
4607
  { name = "azure-core" },
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