half-orm-dev 0.17.2a11__tar.gz → 0.17.3a2__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.
- {half_orm_dev-0.17.2a11/half_orm_dev.egg-info → half_orm_dev-0.17.3a2}/PKG-INFO +2 -2
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/database.py +12 -14
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/repo.py +30 -37
- half_orm_dev-0.17.3a2/half_orm_dev/version.txt +1 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2/half_orm_dev.egg-info}/PKG-INFO +2 -2
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev.egg-info/requires.txt +1 -1
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/setup.py +22 -4
- half_orm_dev-0.17.2a11/half_orm_dev/version.txt +0 -1
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/AUTHORS +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/LICENSE +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/README.md +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/__init__.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/__init__.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/__init__.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/apply.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/check.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/clone.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/init.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/migrate.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/patch.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/release.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/restore.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/sync.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/todo.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/undo.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/update.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/commands/upgrade.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli/main.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/cli_extension.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/decorators.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/hgit.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/migration_manager.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/migrations/0/17/1/00_move_to_hop.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/migrations/0/17/1/01_txt_to_toml.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/modules.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/patch_manager.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/patch_validator.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/patches/0/1/0/00_half_orm_meta.database.sql +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/patches/0/1/0/01_alter_half_orm_meta.hop_release.sql +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/patches/0/1/0/02_half_orm_meta.view.hop_penultimate_release.sql +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/patches/log +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/patches/sql/half_orm_meta.sql +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/release_file.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/release_manager.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/.gitignore +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/MANIFEST.in +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/Pipfile +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/README +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/conftest_template +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/git-hooks/pre-commit +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/git-hooks/prepare-commit-msg +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/init_module_template +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/module_template_1 +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/module_template_2 +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/module_template_3 +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/pyproject.toml +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/relation_test +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/sql_adapter +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/warning +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/utils.py +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev.egg-info/SOURCES.txt +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev.egg-info/dependency_links.txt +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev.egg-info/top_level.txt +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/pyproject.toml +0 -0
- {half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: half_orm_dev
|
|
3
|
-
Version: 0.17.
|
|
3
|
+
Version: 0.17.3a2
|
|
4
4
|
Summary: half_orm development Framework.
|
|
5
5
|
Author-email: Joël Maïzi <joel.maizi@collorg.org>
|
|
6
6
|
License-Expression: GPL-3.0-or-later
|
|
@@ -23,7 +23,7 @@ Requires-Dist: GitPython
|
|
|
23
23
|
Requires-Dist: click
|
|
24
24
|
Requires-Dist: pydash
|
|
25
25
|
Requires-Dist: pytest
|
|
26
|
-
Requires-Dist: half_orm<0.18.0,>=0.17.
|
|
26
|
+
Requires-Dist: half_orm<0.18.0,>=0.17.1
|
|
27
27
|
Requires-Dist: tomli>=2.0.0; python_version < "3.11"
|
|
28
28
|
Requires-Dist: tomli_w>=1.0.0
|
|
29
29
|
Dynamic: license-file
|
|
@@ -1362,25 +1362,23 @@ class Database:
|
|
|
1362
1362
|
pass
|
|
1363
1363
|
"""
|
|
1364
1364
|
try:
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
)
|
|
1365
|
+
# Use existing database connection via half_orm Model API
|
|
1366
|
+
# Query returns: "PostgreSQL 16.1 (Ubuntu 16.1-1.pgdg22.04+1) on ..."
|
|
1367
|
+
result = self.__model.execute_query('SELECT version()')
|
|
1368
|
+
version_str = result[0]['version']
|
|
1370
1369
|
|
|
1371
|
-
#
|
|
1372
|
-
#
|
|
1373
|
-
|
|
1370
|
+
# Extract version number: split on space, take 2nd element (e.g., "16.1")
|
|
1371
|
+
# Then split on dot to get [major, minor, patch]
|
|
1372
|
+
version_parts = [int(part) for part in version_str.split(' ')[1].split('.')]
|
|
1374
1373
|
|
|
1375
|
-
#
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
minor = int(parts[1]) if len(parts) > 1 else 0
|
|
1374
|
+
# Return (major, minor) tuple
|
|
1375
|
+
major = version_parts[0]
|
|
1376
|
+
minor = version_parts[1] if len(version_parts) > 1 else 0
|
|
1379
1377
|
|
|
1380
1378
|
return (major, minor)
|
|
1381
1379
|
|
|
1382
1380
|
except Exception as e:
|
|
1383
1381
|
raise DatabaseError(
|
|
1384
1382
|
f"Failed to get PostgreSQL version: {e}\n"
|
|
1385
|
-
f"Ensure
|
|
1386
|
-
)
|
|
1383
|
+
f"Ensure database connection is available."
|
|
1384
|
+
)
|
|
@@ -2186,26 +2186,35 @@ See docs/half_orm_dev.md for complete documentation.
|
|
|
2186
2186
|
# Validation passed
|
|
2187
2187
|
return True
|
|
2188
2188
|
|
|
2189
|
+
def _reset_database_schemas(self) -> None:
|
|
2190
|
+
"""Drop all user schemas with CASCADE (including half_orm_meta)."""
|
|
2191
|
+
# Get user schemas from half_orm metadata
|
|
2192
|
+
relations = self.model.desc()
|
|
2193
|
+
schemas = {'half_orm_meta', 'half_orm_meta.view'}
|
|
2194
|
+
_ = [schemas.add(rel[1][1]) for rel in relations]
|
|
2195
|
+
|
|
2196
|
+
# Drop each schema with CASCADE
|
|
2197
|
+
for schema_name in schemas:
|
|
2198
|
+
self.model.execute_query(f'DROP SCHEMA IF EXISTS "{schema_name}" CASCADE')
|
|
2199
|
+
|
|
2189
2200
|
def restore_database_from_schema(self) -> None:
|
|
2190
2201
|
"""
|
|
2191
2202
|
Restore database from model/schema.sql and model/metadata-X.Y.Z.sql.
|
|
2192
2203
|
|
|
2193
|
-
Restores database to clean production state by dropping
|
|
2194
|
-
|
|
2204
|
+
Restores database to clean production state by dropping all user schemas
|
|
2205
|
+
and reloading schema structure and half_orm_meta data. This provides
|
|
2195
2206
|
a clean baseline before applying patch files during patch development.
|
|
2196
2207
|
|
|
2197
2208
|
Process:
|
|
2198
2209
|
1. Verify model/schema.sql exists (file or symlink)
|
|
2199
|
-
2.
|
|
2200
|
-
3.
|
|
2201
|
-
4.
|
|
2202
|
-
5.
|
|
2203
|
-
5b. Load half_orm_meta data from model/metadata-X.Y.Z.sql using psql -f (if exists)
|
|
2204
|
-
6. Reconnect halfORM Model to restored database
|
|
2210
|
+
2. Drop all user schemas with CASCADE (no superuser privileges needed)
|
|
2211
|
+
3. Load schema structure from model/schema.sql using psql -f
|
|
2212
|
+
4. Load half_orm_meta data from model/metadata-X.Y.Z.sql using psql -f (if exists)
|
|
2213
|
+
5. Reload halfORM Model metadata cache
|
|
2205
2214
|
|
|
2206
|
-
The method uses
|
|
2207
|
-
|
|
2208
|
-
|
|
2215
|
+
The method uses DROP SCHEMA CASCADE instead of dropdb/createdb, allowing
|
|
2216
|
+
operation without CREATEDB privilege or superuser access. This makes it
|
|
2217
|
+
compatible with cloud databases (RDS, Azure) and restricted environments.
|
|
2209
2218
|
|
|
2210
2219
|
File Resolution:
|
|
2211
2220
|
- Accepts model/schema.sql as regular file or symlink
|
|
@@ -2216,8 +2225,7 @@ See docs/half_orm_dev.md for complete documentation.
|
|
|
2216
2225
|
|
|
2217
2226
|
Error Handling:
|
|
2218
2227
|
- Raises RepoError if model/schema.sql not found
|
|
2219
|
-
- Raises RepoError if
|
|
2220
|
-
- Raises RepoError if createdb fails
|
|
2228
|
+
- Raises RepoError if schema drop fails
|
|
2221
2229
|
- Raises RepoError if psql schema load fails
|
|
2222
2230
|
- Raises RepoError if psql metadata load fails (when file exists)
|
|
2223
2231
|
- Database state rolled back on any failure
|
|
@@ -2255,8 +2263,9 @@ See docs/half_orm_dev.md for complete documentation.
|
|
|
2255
2263
|
# Handle error: check schema.sql exists, verify permissions
|
|
2256
2264
|
|
|
2257
2265
|
Notes:
|
|
2258
|
-
-
|
|
2259
|
-
-
|
|
2266
|
+
- Uses DROP SCHEMA CASCADE - no superuser or CREATEDB privilege required
|
|
2267
|
+
- Works on cloud databases (AWS RDS, Azure Database, etc.)
|
|
2268
|
+
- Uses Model.reconnect(reload=True) to refresh metadata cache
|
|
2260
2269
|
- Supports both schema.sql file and schema.sql -> schema-X.Y.Z.sql symlink
|
|
2261
2270
|
- Metadata file is optional (backward compatibility with older schemas)
|
|
2262
2271
|
- All PostgreSQL commands use repository connection configuration
|
|
@@ -2272,26 +2281,10 @@ See docs/half_orm_dev.md for complete documentation.
|
|
|
2272
2281
|
)
|
|
2273
2282
|
|
|
2274
2283
|
try:
|
|
2275
|
-
# 2.
|
|
2276
|
-
self.
|
|
2277
|
-
pg_version = self.database.get_postgres_version()
|
|
2278
|
-
drop_cmd = ['dropdb', self.name]
|
|
2279
|
-
if pg_version > (13, 0):
|
|
2280
|
-
drop_cmd.append('--force')
|
|
2281
|
-
|
|
2282
|
-
# 3. Drop existing database
|
|
2283
|
-
try:
|
|
2284
|
-
self.database.execute_pg_command(*drop_cmd)
|
|
2285
|
-
except Exception as e:
|
|
2286
|
-
raise RepoError(f"Failed to drop database: {e}") from e
|
|
2287
|
-
|
|
2288
|
-
# 4. Create fresh empty database
|
|
2289
|
-
try:
|
|
2290
|
-
self.database.execute_pg_command('createdb', self.name)
|
|
2291
|
-
except Exception as e:
|
|
2292
|
-
raise RepoError(f"Failed to create database: {e}") from e
|
|
2284
|
+
# 2. Drop all schemas (no superuser privileges needed)
|
|
2285
|
+
self._reset_database_schemas()
|
|
2293
2286
|
|
|
2294
|
-
#
|
|
2287
|
+
# 3. Load schema from model/schema.sql
|
|
2295
2288
|
try:
|
|
2296
2289
|
self.database.execute_pg_command(
|
|
2297
2290
|
'psql', '-d', self.name, '-f', str(schema_path)
|
|
@@ -2299,7 +2292,7 @@ See docs/half_orm_dev.md for complete documentation.
|
|
|
2299
2292
|
except Exception as e:
|
|
2300
2293
|
raise RepoError(f"Failed to load schema from {schema_path.name}: {e}") from e
|
|
2301
2294
|
|
|
2302
|
-
#
|
|
2295
|
+
# 4. Load metadata from model/metadata-X.Y.Z.sql (if exists)
|
|
2303
2296
|
metadata_path = self._deduce_metadata_path(schema_path)
|
|
2304
2297
|
|
|
2305
2298
|
if metadata_path and metadata_path.exists():
|
|
@@ -2315,8 +2308,8 @@ See docs/half_orm_dev.md for complete documentation.
|
|
|
2315
2308
|
) from e
|
|
2316
2309
|
# else: metadata file doesn't exist, continue without error (backward compatibility)
|
|
2317
2310
|
|
|
2318
|
-
#
|
|
2319
|
-
self.model.
|
|
2311
|
+
# 5. Reload half_orm metadata cache
|
|
2312
|
+
self.model.reconnect(reload=True)
|
|
2320
2313
|
|
|
2321
2314
|
except RepoError:
|
|
2322
2315
|
# Re-raise RepoError as-is
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.17.3-a2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: half_orm_dev
|
|
3
|
-
Version: 0.17.
|
|
3
|
+
Version: 0.17.3a2
|
|
4
4
|
Summary: half_orm development Framework.
|
|
5
5
|
Author-email: Joël Maïzi <joel.maizi@collorg.org>
|
|
6
6
|
License-Expression: GPL-3.0-or-later
|
|
@@ -23,7 +23,7 @@ Requires-Dist: GitPython
|
|
|
23
23
|
Requires-Dist: click
|
|
24
24
|
Requires-Dist: pydash
|
|
25
25
|
Requires-Dist: pytest
|
|
26
|
-
Requires-Dist: half_orm<0.18.0,>=0.17.
|
|
26
|
+
Requires-Dist: half_orm<0.18.0,>=0.17.1
|
|
27
27
|
Requires-Dist: tomli>=2.0.0; python_version < "3.11"
|
|
28
28
|
Requires-Dist: tomli_w>=1.0.0
|
|
29
29
|
Dynamic: license-file
|
|
@@ -11,11 +11,21 @@ from pathlib import Path
|
|
|
11
11
|
from setuptools import setup
|
|
12
12
|
|
|
13
13
|
|
|
14
|
+
# Special minimum version requirements for half_orm
|
|
15
|
+
# List of (major, minor, min_patch, max_patch, required_half_orm_version)
|
|
16
|
+
# Example: (0, 17, 3, 5, '0.17.1') means:
|
|
17
|
+
# for half_orm_dev 0.17.x where 3 <= x < 5, require half_orm >= 0.17.1
|
|
18
|
+
HALF_ORM_MIN_VERSIONS = [
|
|
19
|
+
(0, 17, 3, None, '0.17.1'), # 0.17.3+ requires half_orm >= 0.17.1 (CustomGroup support)
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
|
|
14
23
|
def get_half_orm_version_constraint():
|
|
15
24
|
"""
|
|
16
25
|
Calculate half_orm version constraint from half_orm_dev version.
|
|
17
26
|
|
|
18
|
-
For version X.Y.Z[-xxx], returns: half_orm>=X.Y.
|
|
27
|
+
For version X.Y.Z[-xxx], returns: half_orm>=X.Y.MIN,<X.(Y+1).0
|
|
28
|
+
where MIN is determined by HALF_ORM_MIN_VERSIONS or defaults to 0
|
|
19
29
|
"""
|
|
20
30
|
version_file = Path(__file__).parent / "half_orm_dev" / "version.txt"
|
|
21
31
|
version_text = version_file.read_text(encoding="utf-8").strip()
|
|
@@ -27,10 +37,18 @@ def get_half_orm_version_constraint():
|
|
|
27
37
|
raise ValueError(f"Invalid version format in version.txt: {version_text}")
|
|
28
38
|
|
|
29
39
|
major, minor, patch = match.groups()
|
|
30
|
-
major, minor = int(major), int(minor)
|
|
40
|
+
major, minor, patch = int(major), int(minor), int(patch)
|
|
41
|
+
|
|
42
|
+
# Check for special minimum version requirements
|
|
43
|
+
min_version = f"{major}.{minor}.0" # Default
|
|
44
|
+
for req_major, req_minor, min_patch, max_patch, required_version in HALF_ORM_MIN_VERSIONS:
|
|
45
|
+
if major == req_major and minor == req_minor:
|
|
46
|
+
# Check if patch is in range [min_patch, max_patch)
|
|
47
|
+
if patch >= min_patch:
|
|
48
|
+
if max_patch is None or patch < max_patch:
|
|
49
|
+
min_version = required_version
|
|
50
|
+
break
|
|
31
51
|
|
|
32
|
-
# Generate constraint: half_orm>=X.Y.0,<X.(Y+1).0
|
|
33
|
-
min_version = f"{major}.{minor}.0"
|
|
34
52
|
max_version = f"{major}.{minor + 1}.0"
|
|
35
53
|
|
|
36
54
|
return f"half_orm>={min_version},<{max_version}"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.17.2-a11
|
|
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
|
{half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/migrations/0/17/1/00_move_to_hop.py
RENAMED
|
File without changes
|
{half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/migrations/0/17/1/01_txt_to_toml.py
RENAMED
|
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
|
{half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/git-hooks/pre-commit
RENAMED
|
File without changes
|
{half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/git-hooks/prepare-commit-msg
RENAMED
|
File without changes
|
{half_orm_dev-0.17.2a11 → half_orm_dev-0.17.3a2}/half_orm_dev/templates/init_module_template
RENAMED
|
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
|