DefPixel-PostgreSQL 0.1.5__83-py3-none-any.whl
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.
- DefPixel/DataAccessObject/Implements/PostgreSQL/Adapters/Array.py +16 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Adapters/JavaScriptObjectNotation.py +74 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Adapters/__init__.py +51 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Column.py +34 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Compiler.py +161 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Configuration.py +116 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Connection.py +138 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Constraint.py +18 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/Check.py +23 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/Columns.py +24 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/ForeignKey.py +56 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/PrimaryKey.py +21 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/Unique.py +25 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/__init__.py +13 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Context.py +48 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Cursor.py +123 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Create.py +181 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Delete.py +31 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Drop.py +53 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Get.py +24 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Insert.py +98 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Query.py +37 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Select.py +122 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Update.py +57 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/__init__.py +19 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Expr.py +11 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/Common.py +180 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/Compare.py +87 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/Condition.py +155 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/JavaScriptObjectNotation.py +53 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/Operator.py +42 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/String.py +48 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/__init__.py +75 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Function.py +11 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Functions/Common.py +142 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Functions/DateTime.py +219 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Functions/JavaScriptObjectNotation.py +100 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Functions/Sequence.py +55 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Functions/__init__.py +91 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Index.py +135 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/FullOuter.py +15 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/Inner.py +15 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/Join.py +41 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/LeftOuter.py +15 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/RightOuter.py +15 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/__init__.py +15 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Mapping.py +359 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Orders.py +59 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Pool.py +84 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Schema.py +28 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Sequence.py +55 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Session.py +84 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Type.py +113 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Types/Array.py +61 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Types/Binary.py +34 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Types/Bool.py +29 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Types/DateTime.py +120 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Types/JavaScriptObjectNotation.py +52 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Types/Numeric.py +151 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Types/Size.py +13 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Types/String.py +80 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/Types/__init__.py +76 -0
- DefPixel/DataAccessObject/Implements/PostgreSQL/__init__.py +85 -0
- defpixel_postgresql-0.1.5.dist-info/METADATA +180 -0
- defpixel_postgresql-0.1.5.dist-info/RECORD +68 -0
- defpixel_postgresql-0.1.5.dist-info/WHEEL +6 -0
- defpixel_postgresql-0.1.5.dist-info/licenses/LICENSE +674 -0
- defpixel_postgresql-0.1.5.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
from .Bool import Bool
|
|
4
|
+
from .Numeric import (
|
|
5
|
+
Short,
|
|
6
|
+
Integer,
|
|
7
|
+
Long,
|
|
8
|
+
Float,
|
|
9
|
+
Double,
|
|
10
|
+
Decimal,
|
|
11
|
+
)
|
|
12
|
+
from .String import (
|
|
13
|
+
Char,
|
|
14
|
+
String,
|
|
15
|
+
Text,
|
|
16
|
+
)
|
|
17
|
+
from .DateTime import (
|
|
18
|
+
Timestamp,
|
|
19
|
+
Date,
|
|
20
|
+
Time,
|
|
21
|
+
)
|
|
22
|
+
from .Binary import Binary
|
|
23
|
+
from .JavaScriptObjectNotation import (
|
|
24
|
+
JavaScriptObjectNotation,
|
|
25
|
+
JavaScriptObjectNotationByteArray,
|
|
26
|
+
)
|
|
27
|
+
from .Array import Array
|
|
28
|
+
|
|
29
|
+
__all__ = (
|
|
30
|
+
'Bool', 'BOOL', 'BOOLEAN',
|
|
31
|
+
'Short', 'INT2', 'SMALLINT',
|
|
32
|
+
'Integer', 'INT', 'INT4', 'INTEGER',
|
|
33
|
+
'Long', 'INT8', 'BIGINT',
|
|
34
|
+
'Float', 'FLOAT', 'REAL',
|
|
35
|
+
'Double', 'DOUBLE',
|
|
36
|
+
'Decimal', 'DECIMAL', 'NUMERIC',
|
|
37
|
+
'Char', 'CHAR',
|
|
38
|
+
'String', 'VARCHAR', 'STRING',
|
|
39
|
+
'Text', 'TEXT',
|
|
40
|
+
'Date', 'DATE',
|
|
41
|
+
'Time', 'TIME',
|
|
42
|
+
'Timestamp', 'TIMESTAMP',
|
|
43
|
+
'Binary', 'BLOB', 'BYTES', 'BYTEARRAY', 'BYTESTREAM',
|
|
44
|
+
'JavaScriptObjectNotation', 'JSON',
|
|
45
|
+
'JavaScriptObjectNotationByteArray', 'JSONB',
|
|
46
|
+
'Array', 'ARRAY',
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
BOOL = Bool
|
|
50
|
+
BOOLEAN = Bool
|
|
51
|
+
INT2 = Short
|
|
52
|
+
SMALLINT = Short
|
|
53
|
+
INT = Integer
|
|
54
|
+
INT4 = Integer
|
|
55
|
+
INTEGER = Integer
|
|
56
|
+
INT8 = Long
|
|
57
|
+
BIGINT = Long
|
|
58
|
+
FLOAT = Float
|
|
59
|
+
REAL = Float
|
|
60
|
+
DOUBLE = Double
|
|
61
|
+
DECIMAL = Decimal
|
|
62
|
+
NUMERIC = Decimal
|
|
63
|
+
CHAR = Char
|
|
64
|
+
VARCHAR = String
|
|
65
|
+
STRING = String
|
|
66
|
+
TEXT = Text
|
|
67
|
+
DATE = Date
|
|
68
|
+
TIME = Time
|
|
69
|
+
TIMESTAMP = Timestamp
|
|
70
|
+
BLOB = Binary
|
|
71
|
+
BYTES = Binary
|
|
72
|
+
BYTEARRAY = Binary
|
|
73
|
+
BYTESTREAM = Binary
|
|
74
|
+
JSON = JavaScriptObjectNotation
|
|
75
|
+
JSONB = JavaScriptObjectNotationByteArray
|
|
76
|
+
ARRAY = Array
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
try:
|
|
4
|
+
import psycopg # noqa: F401
|
|
5
|
+
import psycopg_pool # noqa: F401
|
|
6
|
+
except ImportError as e:
|
|
7
|
+
raise ImportError(
|
|
8
|
+
'DefPixel PostgreSQL support requires psycopg; install it with: pip install "DefPixel[PostgreSQL]"'
|
|
9
|
+
) from e
|
|
10
|
+
|
|
11
|
+
from .Configuration import Configuration
|
|
12
|
+
from .Connection import Connection
|
|
13
|
+
from .Cursor import Cursor
|
|
14
|
+
from .Session import Session
|
|
15
|
+
from .Context import Context
|
|
16
|
+
from .Pool import Pool
|
|
17
|
+
|
|
18
|
+
from .Mapping import (
|
|
19
|
+
column,
|
|
20
|
+
table,
|
|
21
|
+
view,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
from .Type import Type
|
|
25
|
+
from .Column import Column
|
|
26
|
+
from .Schema import Schema
|
|
27
|
+
from .Sequence import Sequence
|
|
28
|
+
from .Constraint import Constraint
|
|
29
|
+
from .Constraints import (
|
|
30
|
+
PrimaryKey,
|
|
31
|
+
ForeignKey,
|
|
32
|
+
Unique,
|
|
33
|
+
Check,
|
|
34
|
+
)
|
|
35
|
+
from .Index import (
|
|
36
|
+
IndexType,
|
|
37
|
+
Index,
|
|
38
|
+
IndexUnique,
|
|
39
|
+
IndexOperation,
|
|
40
|
+
)
|
|
41
|
+
from .Expr import Expr
|
|
42
|
+
from .Function import Function
|
|
43
|
+
from .Executors import (
|
|
44
|
+
Create,
|
|
45
|
+
Drop,
|
|
46
|
+
Insert,
|
|
47
|
+
Update,
|
|
48
|
+
Delete,
|
|
49
|
+
Select,
|
|
50
|
+
Get,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
__all__ = (
|
|
54
|
+
'Configuration',
|
|
55
|
+
'Connection',
|
|
56
|
+
'Cursor',
|
|
57
|
+
'Session',
|
|
58
|
+
'Context',
|
|
59
|
+
'Pool',
|
|
60
|
+
'column',
|
|
61
|
+
'table',
|
|
62
|
+
'view',
|
|
63
|
+
'Type',
|
|
64
|
+
'Column',
|
|
65
|
+
'Schema',
|
|
66
|
+
'Sequence',
|
|
67
|
+
'Constraint',
|
|
68
|
+
'PrimaryKey',
|
|
69
|
+
'ForeignKey',
|
|
70
|
+
'Unique',
|
|
71
|
+
'Check',
|
|
72
|
+
'IndexType',
|
|
73
|
+
'Index',
|
|
74
|
+
'IndexUnique',
|
|
75
|
+
'IndexOperation',
|
|
76
|
+
'Expr',
|
|
77
|
+
'Function',
|
|
78
|
+
'Create',
|
|
79
|
+
'Drop',
|
|
80
|
+
'Insert',
|
|
81
|
+
'Update',
|
|
82
|
+
'Delete',
|
|
83
|
+
'Select',
|
|
84
|
+
'Get',
|
|
85
|
+
)
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: DefPixel-PostgreSQL
|
|
3
|
+
Version: 0.1.5
|
|
4
|
+
Summary: The Python toolkit to define data connections, design data models, and dive into your data
|
|
5
|
+
Home-page: https://github.com/yong5eon/DefPixel
|
|
6
|
+
Author: Heo Yongseon
|
|
7
|
+
Project-URL: Source, https://github.com/yong5eon/DefPixel
|
|
8
|
+
Project-URL: Issues, https://github.com/yong5eon/DefPixel/issues
|
|
9
|
+
Project-URL: Releases, https://github.com/yong5eon/DefPixel/releases
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
15
|
+
Requires-Python: >=3.10
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Requires-Dist: DefPixel==0.1.5
|
|
19
|
+
Requires-Dist: psycopg[binary,pool]<4,>=3.3
|
|
20
|
+
Dynamic: author
|
|
21
|
+
Dynamic: classifier
|
|
22
|
+
Dynamic: description
|
|
23
|
+
Dynamic: description-content-type
|
|
24
|
+
Dynamic: home-page
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
Dynamic: project-url
|
|
27
|
+
Dynamic: requires-dist
|
|
28
|
+
Dynamic: requires-python
|
|
29
|
+
Dynamic: summary
|
|
30
|
+
|
|
31
|
+
# DefPixel
|
|
32
|
+
|
|
33
|
+
**Define your pixels. Design your voxels.**<br>
|
|
34
|
+
Define your connections, Design your models, and Dive into your data in Python.
|
|
35
|
+
|
|
36
|
+
DefPixel is a Python library for defining data source connections, models, and access. Use a provided data access implementation or build your own, and work with data directly or through standard dataclasses.
|
|
37
|
+
|
|
38
|
+
## Connect · model · use
|
|
39
|
+
|
|
40
|
+
- Define your connections: storage-specific configuration and data access capabilities.
|
|
41
|
+
- Design your models: storage specifications and validation rules attached to standard dataclasses.
|
|
42
|
+
- Dive into your data: direct access without models, or storage and retrieval through models.
|
|
43
|
+
|
|
44
|
+
Configuration and Connection provide connection foundations. Database, KeyValue, Document, and Index Protocols describe capabilities. Modeling approaches and support vary by implementation. Validators also provide independent value validation and conversion.
|
|
45
|
+
|
|
46
|
+
## Requirements and installation
|
|
47
|
+
|
|
48
|
+
Python 3.10+ is required.
|
|
49
|
+
The base `pip install DefPixel` installs only the core, without implementation code.
|
|
50
|
+
|
|
51
|
+
### Sqlite
|
|
52
|
+
|
|
53
|
+
Select the Sqlite implementation with the `Sqlite` extra. It uses Python's standard-library `sqlite3`. Model-based usage requires Sqlite 3.35+ as used by Python.
|
|
54
|
+
|
|
55
|
+
```shell
|
|
56
|
+
pip install "DefPixel[Sqlite]"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### PostgreSQL
|
|
60
|
+
|
|
61
|
+
Install the `PostgreSQL` extra to include the implementation and PostgreSQL driver. A running PostgreSQL 15–18 server is required. This installation excludes Sqlite.
|
|
62
|
+
|
|
63
|
+
```shell
|
|
64
|
+
pip install "DefPixel[PostgreSQL]"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Use `pip install "DefPixel[Sqlite,PostgreSQL]"` for both implementations. Each extra selects a separate, same-version distribution; existing import paths are unchanged. Before migrating an older integrated installation, uninstall DefPixel and any implementation distributions, then reinstall with the required extras. Sqlite is no longer included in the base installation. Omitting an extra later does not remove an already installed implementation.
|
|
68
|
+
|
|
69
|
+
## Usage at a glance
|
|
70
|
+
|
|
71
|
+
### Database
|
|
72
|
+
|
|
73
|
+
#### Sqlite
|
|
74
|
+
|
|
75
|
+
Execute SQL directly for dictionary results or map standard dataclasses to tables and retrieve objects. This complete example requires Sqlite 3.35+ as used by Python.
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
from dataclasses import dataclass
|
|
79
|
+
from DefPixel.DataAccessObject.Implements.Sqlite import (
|
|
80
|
+
Configuration, Connection, column, table,
|
|
81
|
+
)
|
|
82
|
+
from DefPixel.DataAccessObject.Implements.Sqlite.Constraints import PrimaryKey
|
|
83
|
+
from DefPixel.DataAccessObject.Implements.Sqlite.Executors import Create, Insert, Select
|
|
84
|
+
from DefPixel.DataAccessObject.Implements.Sqlite.Types import Integer, Text
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@table(name='users', constraints=(PrimaryKey('id'),))
|
|
88
|
+
@dataclass
|
|
89
|
+
class User:
|
|
90
|
+
id: int = column(Integer())
|
|
91
|
+
name: str = column(Text())
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
connection = Connection(Configuration(':memory:'))
|
|
95
|
+
connection.connect()
|
|
96
|
+
try:
|
|
97
|
+
with connection.session() as session:
|
|
98
|
+
session.run(Create(User))
|
|
99
|
+
session.run(Insert(User).values(id=1, name='Alice'))
|
|
100
|
+
|
|
101
|
+
rows = session.execute(
|
|
102
|
+
'SELECT id, name FROM users WHERE id = ?', 1,
|
|
103
|
+
).rows()
|
|
104
|
+
print(rows)
|
|
105
|
+
|
|
106
|
+
users = session.run(Select(User), fetch=User)
|
|
107
|
+
print(users)
|
|
108
|
+
finally:
|
|
109
|
+
connection.close()
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Output:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
[{'id': 1, 'name': 'Alice'}]
|
|
116
|
+
[User(id=1, name='Alice')]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Sessions commit on normal completion and roll back on exceptions. Direct SQL does not require models. Models remain ordinary Python objects; attribute assignment does not automatically persist changes. No custom Model base class or Service/Repository/DTO structure is required.
|
|
120
|
+
|
|
121
|
+
#### PostgreSQL
|
|
122
|
+
|
|
123
|
+
PostgreSQL also supports direct SQL alongside dataclass mappings. Install the PostgreSQL extra above and adjust the connection settings for your server. Run this example in a development database: it creates and drops the `defpixel_readme_users` table.
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
from dataclasses import dataclass
|
|
127
|
+
from DefPixel.DataAccessObject.Implements.PostgreSQL import (
|
|
128
|
+
Configuration, Connection, Create, Drop, Insert, PrimaryKey, Select, column, table,
|
|
129
|
+
)
|
|
130
|
+
from DefPixel.DataAccessObject.Implements.PostgreSQL.Types import Integer, Text
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
@table('defpixel_readme_users', constraints=PrimaryKey('defpixel_readme_users_pk', 'id'))
|
|
134
|
+
@dataclass
|
|
135
|
+
class User:
|
|
136
|
+
id: int = column(Integer())
|
|
137
|
+
name: str = column(Text())
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
connection = Connection(Configuration(
|
|
141
|
+
host='127.0.0.1', port=5432, database='defpixel',
|
|
142
|
+
username='defpixel', password='change-me-local-only',
|
|
143
|
+
))
|
|
144
|
+
connection.connect()
|
|
145
|
+
try:
|
|
146
|
+
with connection.session() as session:
|
|
147
|
+
session.run(Create(User))
|
|
148
|
+
session.run(Insert(User).values(id=1, name='Alice'))
|
|
149
|
+
|
|
150
|
+
rows = session.execute(
|
|
151
|
+
'SELECT id, name FROM defpixel_readme_users WHERE id = %s', 1,
|
|
152
|
+
).rows()
|
|
153
|
+
print(rows)
|
|
154
|
+
|
|
155
|
+
users = session.run(Select(User), fetch=User)
|
|
156
|
+
print(users)
|
|
157
|
+
session.run(Drop(User))
|
|
158
|
+
finally:
|
|
159
|
+
connection.close()
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Output:
|
|
163
|
+
|
|
164
|
+
```text
|
|
165
|
+
[{'id': 1, 'name': 'Alice'}]
|
|
166
|
+
[User(id=1, name='Alice')]
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Direct SQL binds positional arguments with `%s` and keyword arguments with `%(name)s`. PostgreSQL constraints take a name as their first argument.
|
|
170
|
+
|
|
171
|
+
## Supported implementations
|
|
172
|
+
|
|
173
|
+
- Sqlite: direct SQL, dataclass mappings, CRUD, tables, views, constraints, indexes, joins, aggregates, and transactions. Sqlite modeling requires Sqlite 3.35+.
|
|
174
|
+
- PostgreSQL: direct SQL, dataclass mappings, CRUD, schemas, sequences, tables, views, constraints, indexes, joins, aggregate/window/JSON functions, nested transactions, and connection pools. Requires PostgreSQL 15–18 and the `PostgreSQL` extra.
|
|
175
|
+
|
|
176
|
+
## Build your own
|
|
177
|
+
|
|
178
|
+
Implement the capability Protocols for the store you need, without inheriting a provided implementation or adapting every store to SQL.
|
|
179
|
+
|
|
180
|
+
The source repository includes step-by-step implementation development guides and Sqlite and PostgreSQL user manuals.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Column.py,sha256=5R1mIp6LDIB1IIG2w1Mm3U6qFerNF7Tp5zzvStM2lP0,606
|
|
2
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Compiler.py,sha256=uuDs4BRFX4kVLXjL1Xdt-1JbHG--nMYYJXGDMsX2YA4,4033
|
|
3
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Configuration.py,sha256=AEPQzOLp1knO4afwoa_IxQAunBOOPtmdGZqjVuwvCoI,3287
|
|
4
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Connection.py,sha256=I6SBlDc8vMBeLSft_YqmSm_SuciidhwLqhNO0IRVB9k,3395
|
|
5
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Constraint.py,sha256=lEmteXdgmB1QiFOIHPoY2iWCDzuCzr138lyVIDLOYCg,244
|
|
6
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Context.py,sha256=uUU-TNn9150ra2HOgKdG-SdX66O68I-U0BiHxOnB59g,1057
|
|
7
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Cursor.py,sha256=2Obx8hjFfBq_GgYy63ppFcd-cGH4fpcVqsB3MlXkpnc,2537
|
|
8
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Expr.py,sha256=bkGyjtN6IiuQeg0MH8xzaduYUfMrvNngMvmYmNtzZdo,181
|
|
9
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Function.py,sha256=5JX3TnUIfwLeeSkEfbi6ERpIAOYq6EqkEhInemVFikk,187
|
|
10
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Index.py,sha256=9MUNZ0S8eOV8iSZfkKgSO0GEFI12BY-t_9Hi0MgYB8M,2952
|
|
11
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Mapping.py,sha256=EpHprVDo0D4PVy9KMQWFkWeAwz26XSYaQZrEJWUoQc0,8761
|
|
12
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Orders.py,sha256=Wsnd5plXQ6QCEGCNs6-TLGTkeua6R-Fk254qDl7M7Fw,1058
|
|
13
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Pool.py,sha256=5W3ofM_gCzCNgHbynVfetWk7sznfaUJuXHutpGaj554,2231
|
|
14
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Schema.py,sha256=mSAqGX57Qm8umhPRcPSkQewSOLC-KYsi-TV9XRH_VRc,441
|
|
15
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Sequence.py,sha256=d8BqM3DhQ-xVeRuJ9ihuwdbsioiTxzHBpC-uH62cq_A,1216
|
|
16
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Session.py,sha256=liX03RAyHYfm34JO9GKu-fGl7C66TckYHgHipqH76QA,2281
|
|
17
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Type.py,sha256=wace2HKa9BxufMhgix3NsQs96yiCVgludkIUDW0y9U8,2778
|
|
18
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/__init__.py,sha256=DdH_v1Z9AMrfLPi4pNY4DwBxxthO_TFbMgCRMv-RAsY,1300
|
|
19
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Adapters/Array.py,sha256=ix5jaHMiQoWtH85HADwZV1XEl_nuL33PGFV6Xqr0eqo,289
|
|
20
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Adapters/JavaScriptObjectNotation.py,sha256=vkVb7xzC8qr-NEuOXXQrO2mJM5qp3CKPJ40RY5yb0No,1737
|
|
21
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Adapters/__init__.py,sha256=LhfavnmA91kLsUieCtrfk8XLyu3OfdKTo5GfFYceWb0,1247
|
|
22
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/Check.py,sha256=RvxduIw4-1Sw4W7w1ha20QmoaSoQcEGajCtTb5ti5PM,427
|
|
23
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/Columns.py,sha256=6EJrBO0Hk-4n2tmDnXIAJoCQjhNIYcB4fXkBvfGZ_p4,678
|
|
24
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/ForeignKey.py,sha256=zr_TZKkyPNzjnPNUi1_-too-05Hoim4JT6sZiKKEiEs,1438
|
|
25
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/PrimaryKey.py,sha256=gXFoOcwbceBrYx0FhhSrCUwflQ7pgxLOgfa7VOtivE8,299
|
|
26
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/Unique.py,sha256=H001YH9mN5TvkmoRS_V_mLaSjU1EnGlgADWK3DGK2OA,462
|
|
27
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Constraints/__init__.py,sha256=L38DmHNASR0GiBMHI5uW35g1C9RNnVJixDPAYH3WN6w,212
|
|
28
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Create.py,sha256=kdX8B1XZmEujeHrG2GvuNe6HPhP-LwK4YyFbo29fsiU,5375
|
|
29
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Delete.py,sha256=_xIHCUWZzqgROZOm-sISIN3YCgcFHGd6sf8awmXteyc,705
|
|
30
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Drop.py,sha256=CurqTMi8gYtZkEgicOC_slCEcMCDAQSCXw23SJWXj9k,1282
|
|
31
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Get.py,sha256=Ah6Eo2r8esGvd_yBbNkdb1vWcf9d9tme2KY2x9n9l2o,320
|
|
32
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Insert.py,sha256=rxvfkRPTPlUheZV-p85qUfTWJvL7e7-Z8Tj8Yzl21eU,2309
|
|
33
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Query.py,sha256=RJOb_TbQJd41CEFifnQ9tJUE5yPKQxkIFGFYqQ5hLQs,689
|
|
34
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Select.py,sha256=RkDjWlFxsHDX57-BAxN39AmY7iEFLVlLt5ZmaPJqPxo,2857
|
|
35
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/Update.py,sha256=xFuunAaii0CTAkbXne8GvttPvePlqpYiScJedtHFQWQ,1286
|
|
36
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Executors/__init__.py,sha256=G6NVlSCABqI6feWyK-5bqlrsGcqD42jod47AobhDJ0o,290
|
|
37
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/Common.py,sha256=65t1NClKO5eKLPAZUC2J7fFe34zF7mGc2d_qaQ-Ap5I,3838
|
|
38
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/Compare.py,sha256=Ngn65LfdvsLC1-5VULz3YH_r-lfcUvTK0teqe50ILhY,1748
|
|
39
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/Condition.py,sha256=pNbJgQr5mjN6kSUACHx7KEmW6P9KUkkopYpx6CMDVQw,3045
|
|
40
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/JavaScriptObjectNotation.py,sha256=EVoA2BdIBfp1Wbgd0nN-nOzJWU9bnOJHJbTVthZ6uTE,1181
|
|
41
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/Operator.py,sha256=nHcJjsJ5Apii8ZmZvrR8ZuUVYS9A5UAzjwlJRM8_jmc,839
|
|
42
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/String.py,sha256=IjXeY9zi5Dz0q43Y7361epWBGTHntpXrnws0-HJXyAo,828
|
|
43
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Exprs/__init__.py,sha256=I-vkovnnK-qoDoGgGyM1INqwVOkKpxSjYzIOnTZWaCw,865
|
|
44
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Functions/Common.py,sha256=wbNnbC6Ii8BVJef_MSCs-HCHYKotuIDmJUm3BG2_RBg,2632
|
|
45
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Functions/DateTime.py,sha256=4hJyXk8alQEv0FwcWM05O_O8gYS8CZnhsPt4jQ5kH5k,4141
|
|
46
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Functions/JavaScriptObjectNotation.py,sha256=1DOLGhxeAIrR8TQrmrVt9fk6yjt6UOy8pNtDm9njdao,2280
|
|
47
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Functions/Sequence.py,sha256=Ev_7R8SNE3_Lyob9Ck5d7F77XSvepc9JWl5CnKTBGDI,1315
|
|
48
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Functions/__init__.py,sha256=9WfXTciddsQ0cgJ-wbam9xc6zKOk5j9D_FjeNtxZox0,1091
|
|
49
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/FullOuter.py,sha256=c2CNw2echKzZuNXwTVp5DnI5QUehFYHXCKu65hvo6Gk,217
|
|
50
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/Inner.py,sha256=xB5lRIwuqgOvN0009T0GfEmaJigmQfUSSwTCg0pz-58,199
|
|
51
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/Join.py,sha256=DYsGFEPx0hM5wQPeUEialsdov-9Tn6OxGUz8HT4ycLc,1007
|
|
52
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/LeftOuter.py,sha256=H533yKWFD8IbuSYtbOKpZnxR2gcuDQv-VE-2_kYeFII,217
|
|
53
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/RightOuter.py,sha256=ei7Riikrfk30Q5qp9vtY4MOUdK2GOGQUQS9N6QJDR4I,221
|
|
54
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Joins/__init__.py,sha256=KNl-lMbG1v9j86bxuBkkeEKDLBxdCGKh8DhQTFwajHA,250
|
|
55
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Types/Array.py,sha256=PdMZExrRFJnFKowNmuN4Zbh8DdTLbuO_xqrO5OsqLpk,1281
|
|
56
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Types/Binary.py,sha256=Qo_dbiKX3FV0jmfRP2fSODB5QER0xTiamnPyOCeIPvo,530
|
|
57
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Types/Bool.py,sha256=P97FVp3iSUyiaVcUSun0t6NKeysJzObaoBuhpsHyulM,370
|
|
58
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Types/DateTime.py,sha256=8hD187crLylq888_AaLgUu6YZrCfrZzqg1v8TjbzadQ,2458
|
|
59
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Types/JavaScriptObjectNotation.py,sha256=caAWDG_7j5mTWjMeu6yjGm9xip8leFe9sLOvh0l38pw,954
|
|
60
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Types/Numeric.py,sha256=8CZE7BP3PAqz-azGaDGLqxA9o1jR4FAxZflTa2SxXKg,2581
|
|
61
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Types/Size.py,sha256=DyNpDTbatlWNn8fhPE-NLq1qKqLvCkGBKY2pY-8tGvU,262
|
|
62
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Types/String.py,sha256=iXcAuQSZrCJAWAdM1N4csvFpKxyoO06wT9Pcr-UjUus,1235
|
|
63
|
+
DefPixel/DataAccessObject/Implements/PostgreSQL/Types/__init__.py,sha256=D34zU9CUpNWWIQWJSOE05bMt36J2ipicT8tZXPrDG4M,1354
|
|
64
|
+
defpixel_postgresql-0.1.5.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
65
|
+
defpixel_postgresql-0.1.5.dist-info/METADATA,sha256=PgXrkq9SyR7DmX2KEiU-HcfLfq52kEgepwAYFvpNA04,6778
|
|
66
|
+
defpixel_postgresql-0.1.5.dist-info/WHEEL,sha256=z2ae0zv_6J4DXSZsovNmpTs3PrmNwb98SjuGdID_M3E,101
|
|
67
|
+
defpixel_postgresql-0.1.5.dist-info/top_level.txt,sha256=q8GXppLfIcF9XRgxaOnzWmk1HvM4fsQQW3eVlmvsatw,9
|
|
68
|
+
defpixel_postgresql-0.1.5.dist-info/RECORD,,
|