cinchdb 0.1.2__tar.gz → 0.1.3__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.
- {cinchdb-0.1.2 → cinchdb-0.1.3}/PKG-INFO +1 -1
- {cinchdb-0.1.2 → cinchdb-0.1.3}/pyproject.toml +1 -1
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/utils/name_validator.py +6 -6
- {cinchdb-0.1.2 → cinchdb-0.1.3}/.gitignore +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/LICENSE +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/README.md +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/__init__.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/__main__.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/__init__.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/commands/__init__.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/commands/branch.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/commands/codegen.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/commands/column.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/commands/database.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/commands/query.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/commands/remote.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/commands/table.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/commands/tenant.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/commands/view.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/handlers/__init__.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/handlers/codegen_handler.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/main.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/cli/utils.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/config.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/core/__init__.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/core/connection.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/core/database.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/core/maintenance.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/core/path_utils.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/__init__.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/branch.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/change_applier.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/change_comparator.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/change_tracker.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/codegen.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/column.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/data.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/merge_manager.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/query.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/table.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/tenant.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/managers/view.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/models/__init__.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/models/base.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/models/branch.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/models/change.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/models/database.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/models/project.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/models/table.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/models/tenant.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/models/view.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/utils/__init__.py +0 -0
- {cinchdb-0.1.2 → cinchdb-0.1.3}/src/cinchdb/utils/sql_validator.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: cinchdb
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.3
|
4
4
|
Summary: A Git-like SQLite database management system with branching and multi-tenancy
|
5
5
|
Project-URL: Homepage, https://github.com/russellromney/cinchdb
|
6
6
|
Project-URL: Documentation, https://russellromney.github.io/cinchdb
|
@@ -9,7 +9,7 @@ from typing import Optional
|
|
9
9
|
|
10
10
|
|
11
11
|
# Regex pattern for valid names: lowercase letters, numbers, dash, underscore, period
|
12
|
-
VALID_NAME_PATTERN = re.compile(r'^[a-z0-9][a-z0-9
|
12
|
+
VALID_NAME_PATTERN = re.compile(r'^[a-z0-9][a-z0-9\-_\.]*[a-z0-9]$|^[a-z0-9]$')
|
13
13
|
|
14
14
|
# Reserved names that cannot be used
|
15
15
|
RESERVED_NAMES = {'con', 'prn', 'aux', 'nul', 'com1', 'com2', 'com3', 'com4',
|
@@ -26,7 +26,7 @@ def validate_name(name: str, entity_type: str = "entity") -> None:
|
|
26
26
|
"""Validate that a name meets CinchDB naming requirements.
|
27
27
|
|
28
28
|
Valid names must:
|
29
|
-
- Contain only lowercase letters (a-z), numbers (0-9), dash (-), underscore (_)
|
29
|
+
- Contain only lowercase letters (a-z), numbers (0-9), dash (-), and underscore (_)
|
30
30
|
- Start and end with alphanumeric characters
|
31
31
|
- Be at least 1 character long
|
32
32
|
- Not exceed 255 characters (filesystem limit)
|
@@ -64,7 +64,7 @@ def validate_name(name: str, entity_type: str = "entity") -> None:
|
|
64
64
|
)
|
65
65
|
|
66
66
|
# Check for consecutive special characters
|
67
|
-
if '
|
67
|
+
if '--' in name or '__' in name or '-_' in name or '_-' in name or '..' in name or '.-' in name or '-.' in name or '._' in name or '_.' in name:
|
68
68
|
raise InvalidNameError(
|
69
69
|
f"Invalid {entity_type} name '{name}'. "
|
70
70
|
f"Names cannot contain consecutive special characters."
|
@@ -102,13 +102,13 @@ def clean_name(name: str) -> str:
|
|
102
102
|
cleaned = cleaned.replace(' ', '-')
|
103
103
|
|
104
104
|
# Remove invalid characters
|
105
|
-
cleaned = re.sub(r'[^a-z0-9
|
105
|
+
cleaned = re.sub(r'[^a-z0-9\-_\.]', '', cleaned)
|
106
106
|
|
107
107
|
# Remove consecutive special characters
|
108
|
-
cleaned = re.sub(r'[
|
108
|
+
cleaned = re.sub(r'[-_\.]{2,}', '-', cleaned)
|
109
109
|
|
110
110
|
# Remove leading/trailing special characters
|
111
|
-
cleaned = cleaned.strip('
|
111
|
+
cleaned = cleaned.strip('-_.')
|
112
112
|
|
113
113
|
return cleaned
|
114
114
|
|
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
|