rest_mysql
Stand alone version of Record_MySQL from Rest-OC to facilitate updating code to newer librairies. Since forking off of Rest-OC numerous improvements and bug fixes have been done.
See Releases for changes from release to release.
Install
Requires
rest_mysql requires python 3.10 or higher
Install via pip
pip install rest_mysql
Updating from Rest-OC
Instead of pulling Record_MySQL from RestOC as we did in the past, change any references to rest_mysql
Old:
from RestOC import Record_MySQL
from RestOC.Record_MySQL import db_create, Record
from RestOC.Record_Base import register_type
New:
from rest_mysql import Record_MySQL
from rest_mysql.Record_MySQL import db_create, Record
from rest_mysql.Record_Base import register_type
Binary UUID and UUIDv4
If you're using uuid or uuid4 define
types and you run into problems with UUID_TO_BIN and BIN_TO_UUID, you will need
to install the functions, or an alias
Note
Before continuing, I would suggest switching to tuuid or tuuid4 as these
represent trimmed UUIDs, which can be turned to binary and back without the use
of UUID_TO_BIN or BIN_TO_UUID. If you absolutely must have full UUIDs, then
choose from the below server types to continue fixing the issue.
MySQL
MySQL provides the functions, but in order for rest_mysql to be supportive of
all system, it defaults to assuming the function is part of the database schema.
To solve this, make aliases to the global functons
from rest_mysql.Record_MySQL import Commands
db = 'your_db_name'
Commands.execute('primary', [ (
"CREATE FUNCTION `%s`.`BIN_TO_UUID`(b BINARY(16)) "
"RETURNS CHAR(36) DETERMINISTIC "
"BEGIN "
" return BIN_TO_UUID(b); "
"END" % db ), (
"CREATE FUNCTION `%s`.`UUID_TO_BIN`(uuid CHAR(36)) "
"RETURNS BINARY(16) DETERMINISTIC "
"BEGIN "
" RETURN UUID_TO_BIN(uuid); "
"END" % db
) ])
MariaDB
MariaDB does not provide UUID_TO_BIN and BIN_TO_UUID as it has its own uuid type which doesn't support the standard sql way of storing binary UUIDs. You can add the functions to the database schema like so
from rest_mysql.Record_MySQL import Commands
db = 'your_db_name'
Commands.execute('primary', [ (
"CREATE FUNCTION `%s`.`BIN_TO_UUID`(b BINARY(16)) "
"RETURNS CHAR(36) DETERMINISTIC "
"BEGIN "
" DECLARE hexStr CHAR(32); "
" SET hexStr = HEX(b); "
" RETURN LOWER(CONCAT("
"SUBSTR(hexStr, 1, 8), '-', "
"SUBSTR(hexStr, 9, 4), '-', "
"SUBSTR(hexStr, 13, 4), '-', "
"SUBSTR(hexStr, 17, 4), '-', "
"SUBSTR(hexStr, 21)"
")); "
"END" % db ), (
"CREATE FUNCTION `%s`.`UUID_TO_BIN`(uuid CHAR(36)) "
"RETURNS BINARY(16) DETERMINISTIC "
"BEGIN "
"RETURN UNHEX(REPLACE(uuid, '-', '')); "
"END" % db
) ])
Metadata
Release files for rest-mysql 1.3.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| rest_mysql-1.3.5.tar.gz | 33.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rest_mysql-1.3.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.9 kB
Release files / rest_mysql-1.3.5.tar.gz
| Download URL | rest_mysql-1.3.5.tar.gz |
|---|---|
| Size | 33.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
858a1b3f0a826c8e361267aa106ced2121912490ed516af320278c2073dd87e5
|
|
BLAKE2b-256 checksum How to use checksums |
40cce214b609d5f974214529267214af053d4dc9b0f3536ee8fa4b21b42c395b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / rest_mysql-1.3.5-py3-none-any.whl
| Download URL | rest_mysql-1.3.5-py3-none-any.whl |
|---|---|
| Size | 33.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9dc34ef692a6059972c19e6feea21669aa471c61c8f923c986091ec6f27db475
|
|
BLAKE2b-256 checksum How to use checksums |
2f46200c98444fc2b57fc6a64a132f33b09056c57f1622c78ca1ea1813183eff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for rest-mysql 1.3.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.