sqllex


Namesqllex JSON
Version 0.1.10.3 PyPI version JSON
download
home_pagehttps://github.com/v1a0/sqllex
SummaryBetter than sqlite3
upload_time2021-06-19 04:24:05
maintainer
docs_urlNone
authorv1a0
requires_python
licensegpl-3.0
keywords sql sql3 sqlite sqlite3 sqllex db database easy
VCS
bugtrack_url
requirements colorama loguru win32-setctime
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
<div align="center">

<img src="./pics/sqllex-logo.svg" width="300px">

# SQLLEX alpha v0.1.10 📚

![Python:3.9](https://img.shields.io/badge/Python-3.9-green)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/V1A0/sqllex.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/V1A0/sqllex/context:python)
[![Total alerts](https://img.shields.io/lgtm/alerts/g/V1A0/sqllex.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/V1A0/sqllex/alerts/)
[![Telegram group](https://img.shields.io/badge/Telegram-Group-blue.svg?logo=telegram)](https://t.me/joinchat/CKq9Mss1UlNlMDIy)


<br>
Better than <b>sqlite3</b>. Seriously, try it out<br>
</div><br>

## Installation
```shell
pip install sqllex
```

If you need most stable version install **sqllex==0.1.10.3**


| Version |  Status | Tests, and actions |
| :--------: | :----------------------------: | :---: |
| `0.1.10.3`    | ✔️ stable (testing)  <br> ✔️ supported      | [![CodeQL](https://github.com/v1a0/sqllex/actions/workflows/codeql-analysis.yml/badge.svg?branch=main)](https://github.com/v1a0/sqllex/actions/workflows/codeql-analysis.yml) </br> [![Test Sqlite3x](https://github.com/v1a0/sqllex/actions/workflows/test_sqlite3x.yml/badge.svg?branch=main)](https://github.com/v1a0/sqllex/actions/workflows/test_sqlite3x.yml) </br> [![Upload Python Package](https://github.com/v1a0/sqllex/actions/workflows/python-publish.yml/badge.svg)](https://github.com/v1a0/sqllex/actions/workflows/python-publish.yml) |
| `<=0.1.9.10`  | ✔️ stable            <br> ❌️ outdated       |  ✔️Mostly passing |
| `<= 0.1.8.x`  | ⚠️ unstable          <br> ❌️ outdated       |  ~ |

v0.1.10+ | Since 0.1.10 version sqllex got some new extra features and change of usage select-like 
methods. If you still know nothing about this, please, read: 
[WARNING.md](https://github.com/v1a0/sqllex/blob/main/WARNING.md#sqllex-v01100)

## About
Use databases without thinking about SQL. Let me show you how sqllex makes
your life easier. Imagine you need create some database, save some data
into it and take it back. That's how your code will look like.

### If you never used SQLite before read [this awesome example](https://github.com/v1a0/sqllex/wiki/SQLite3x-%7C-SIMPLEST-EXAMPLE#simplest-sqlite3x-example) or [this one](https://deepnote.com/@abid/SQLLEX-Simple-and-Faster-7WXrco0hRXaqvAiXo8QJBQ#)
```python
from sqllex import *

db = SQLite3x(                              
    path='my_database.db',                      
    template={                              
        "users": {                          
            "username": [TEXT, NOT_NULL],   
            "age": INTEGER,                 
        }                                   
    }                                       
)

users = db["users"]

users.insert('Sqllex', 33)

users_33 = users.find(age=33)

print(users_33)  # [['Sqllex', 33]]
```

<br>
<details>
<summary id="what1"><big>WHAT IS GOING ON THERE?!</big></summary>

```python
from sqllex import *

# Create some database, with simple structure
db = SQLite3x(                              # create database 
    path='my_data.db',                      # __str__ to your database, or where_ you would like it locate
    template={                              # schema for tables inside your database                              
        "users": {                          # name for the 1'st table
            "username": [TEXT, NOT_NULL],   # 1'st column of table, named "username", contains text-data, can't be NULL
            "age": INTEGER,                 # 2'nd column of table, named "age", contains integer value
        }                                   # end of table
    }                                       # end of schema (template)
)

# Ok, now you have database with table inside it.
# Let's take this table as variable
users = db["users"]

# Now add record of 33 years old user named 'Sqllex' into it
# Dear table, please insert ['Sqllex', 33] values 
users.insert('Sqllex', 33)

# Dear table, please find records where_ column 'age' == 33
users_33 = users.find(age=33)

# Print results
print(users_33)  # [['Sqllex', 33]]
```

</details>

Ok, what if you need more complex structure with FOREIGN KEYs? Not a big deal.

```python
"""
    For the first, you need to import * (all) from Sqllex lib and init your database
"""

# import * (all) from Sqllex
from sqllex import *

# Init-ing your databse
db = SQLite3x(path='my_awesome_db.db')

db.connect()  # It'll lock yor database until you disconnect, but makes sqllex work damn faster

"""
    Ok, now we need to create your tables into a database,
    use create_table method (as SQL-like CREATE TABLE)
"""

# Creating Groups table
db.create_table(
    name='groups',  # here is name of table
    columns={  # here is table structure
        'id': [INTEGER, PRIMARY_KEY, UNIQUE],  # group id
        'name': [TEXT, NOT_NULL, DEFAULT, 'Unknown']  # group name
    }
)

"""
    And one more table
"""

db.create_table(
    'users',  # here is name of table
    {
        'id': [INTEGER, PRIMARY_KEY, UNIQUE],  # user id
        'username': [TEXT, NOT_NULL, DEFAULT, 'Unknown'],  # user name
        'user_group': INTEGER,  # the group user belongs to
        FOREIGN_KEY: {
            "user_group": ["groups", "id"]  # link to table groups, column id
        }
    }
)

"""
    Well done, now let's add some groups and some users into your database
    For example:
        1: Admin
        2: User
        3: Guest
"""

# Record some groups for the first

groups = db['groups']

groups.insert(id=1, name="Admin")  # You can add data like this

groups.insert([2, "User"])  # Or like this

groups.insert(3, 'Guest')  # Or like this

# Same but without table object
# db.insert('groups', id=1, name="Admin")
# db.insert('groups', [2, "User"])
# db.insert('groups', 3, 'Guest')

"""
    Now let's add many users
"""

# Here we have a list of users in format: [id, name, group_id]
users_list = [
    [0, "User_0", 1],
    [1, "User_1", 2],
    [2, "User_2", 3],
    [3, "User_3", 1],
    [4, "User_4", 2],
    [5, "User_5", 3],
    [6, "User_6", 1],
    [7, "User_7", 2],
    [8, "User_8", 3],
    [9, "User_9", 1],
]

users = db['users']

# Insert it by one line
users.insertmany(users_list)

# Done!


"""
    Now we need to take it back by select method (as SQL-like SELECT)
"""

# SELECT FROM (table) (what)
users_in_db = users.select('username')

print(users_in_db)
# It'll print:
# [['User_0',] ['User_1'], ['User_2'], ['User_3'], ['User_4'], ['User_5'], ['User_6'], ['User_7'], ['User_8'], ['User_9']]


"""
    Prefect, and now select some specific records
    (only usernames where_ group_id parameter equalized 1)
"""

group_column = users['user_group']  # get 'user_group' column of table

users_1 = users.select(
    ALL,
    WHERE=(group_column == 1)
)

print(users_1)
# It'll print:
# [[0, 'User_0'], [3, 'User_3'], [6, 'User_6'], [9, 'User_9']]


# And some large example for some another imaginary table
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# !!! CODE DOWN BELOW WOULD NOT WORK !!!
# !!!  This is an example of syntax  !!!
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

users.select(
    SELECT=['username', 'group_name', 'description'],                        # SELECT username, group_name, description
    JOIN=[                                                                   # JOIN
        ['groups', AS, 'gr', ON, 'users.group_id == gr.group_id'],              # INNER JOIN groups AS gr ON us.group_id == gr.group_id
        [CROSS_JOIN, 'about', 'ab', ON, 'ab.group_id == gr.group_id']        # CROSS JOIN about ab ON ab.group_id == gr.group_id
    ],
    WHERE= (users['username'] != 'user_1') & (users['username'] != 'user_2'),  # WHERE (users.username<>'user_1') AND (users.username<>'user_2')
    ORDER_BY='age DESC',                                                     # order by age ASC
    LIMIT=50,                                                                # limit = 50
    OFFSET=20                                                                # offset = 20
)

# Same as SQL script like
# SELECT username, group_name, description
# FROM users
# INNER JOIN groups AS gr ON us.group_id == gr.group_id
# CROSS JOIN about ab ON ab.group_id == gr.group_id
# WHERE (users.username<>'user_1') AND (users.username<>'user_2')
# ORDER BY age DESC
# LIMIT 50
# OFFSET 20

db.disconnect()  # unlock your database

```


<details>
<summary id="just_code_1">Code without comments</summary>



```python
from sqllex import *

db = SQLite3x(path='my_awesome_db.db')

db.connect()

db.create_table(
    name='groups',
    columns={
        'id': [INTEGER, PRIMARY_KEY, UNIQUE],
        'name': [TEXT, NOT_NULL, DEFAULT, 'Unknown']
    }
)

db.create_table(
    'users',
    {
        'id': [INTEGER, PRIMARY_KEY, UNIQUE],
        'username': [TEXT, NOT_NULL, DEFAULT, 'Unknown'],
        'user_group': INTEGER,
        FOREIGN_KEY: {
            "user_group": ["groups", "id"]
        }
    }
)


groups = db['groups']

groups.insert(id=1, name="Admin")

groups.insert([2, "User"])

groups.insert(3, 'Guest')

users_list = [
    [0, "User_0", 1],
    [1, "User_1", 2],
    [2, "User_2", 3],
    [3, "User_3", 1],
    [4, "User_4", 2],
    [5, "User_5", 3],
    [6, "User_6", 1],
    [7, "User_7", 2],
    [8, "User_8", 3],
    [9, "User_9", 1],
]

users = db['users']

users.insertmany(users_list)

users_in_db = users.select('username')

print(users_in_db)

group_column = users['user_group']

users_1 = users.select(
    ALL,
    WHERE=(group_column == 1)
)

print(users_1)

users.select(
    SELECT=['username', 'group_name', 'description'],
    JOIN=[
        ['groups', AS, 'gr', ON, 'users.group_id == gr.group_id'],
        [CROSS_JOIN, 'about', 'ab', ON, 'ab.group_id == gr.group_id']
    ],
    WHERE= (users['username'] != 'user_1') & (users['username'] != 'user_2'),
    ORDER_BY='age DESC',
    LIMIT=50,
    OFFSET=20
)

db.disconnect()
```

</details>

# [Not enough? Need examples? Read more in Sqllex Wiki! (link)](https://github.com/V1A0/sqllex/wiki)

-----
### Other
#### [TODO-list](todo.md)



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/v1a0/sqllex",
    "name": "sqllex",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "sql,sql3,sqlite,sqlite3,sqllex,db,database,easy",
    "author": "v1a0",
    "author_email": "contact@v1a0.dev",
    "download_url": "https://files.pythonhosted.org/packages/e1/48/c4e9ffa1024ea8f69b8dbcea699b5e198e5022dd554aec4cd915b58ab02f/sqllex-0.1.10.3.tar.gz",
    "platform": "",
    "description": "\n<div align=\"center\">\n\n<img src=\"./pics/sqllex-logo.svg\" width=\"300px\">\n\n# SQLLEX alpha v0.1.10 \ud83d\udcda\n\n![Python:3.9](https://img.shields.io/badge/Python-3.9-green)\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/V1A0/sqllex.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/V1A0/sqllex/context:python)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/V1A0/sqllex.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/V1A0/sqllex/alerts/)\n[![Telegram group](https://img.shields.io/badge/Telegram-Group-blue.svg?logo=telegram)](https://t.me/joinchat/CKq9Mss1UlNlMDIy)\n\n\n<br>\nBetter than <b>sqlite3</b>. Seriously, try it out<br>\n</div><br>\n\n## Installation\n```shell\npip install sqllex\n```\n\nIf you need most stable version install **sqllex==0.1.10.3**\n\n\n| Version |  Status | Tests, and actions |\n| :--------: | :----------------------------: | :---: |\n| `0.1.10.3`    | \u2714\ufe0f stable (testing)  <br> \u2714\ufe0f supported      | [![CodeQL](https://github.com/v1a0/sqllex/actions/workflows/codeql-analysis.yml/badge.svg?branch=main)](https://github.com/v1a0/sqllex/actions/workflows/codeql-analysis.yml) </br> [![Test Sqlite3x](https://github.com/v1a0/sqllex/actions/workflows/test_sqlite3x.yml/badge.svg?branch=main)](https://github.com/v1a0/sqllex/actions/workflows/test_sqlite3x.yml) </br> [![Upload Python Package](https://github.com/v1a0/sqllex/actions/workflows/python-publish.yml/badge.svg)](https://github.com/v1a0/sqllex/actions/workflows/python-publish.yml) |\n| `<=0.1.9.10`  | \u2714\ufe0f stable            <br> \u274c\ufe0f outdated       |  \u2714\ufe0fMostly passing |\n| `<= 0.1.8.x`  | \u26a0\ufe0f unstable          <br> \u274c\ufe0f outdated       |  ~ |\n\nv0.1.10+ | Since 0.1.10 version sqllex got some new extra features and change of usage select-like \nmethods. If you still know nothing about this, please, read: \n[WARNING.md](https://github.com/v1a0/sqllex/blob/main/WARNING.md#sqllex-v01100)\n\n## About\nUse databases without thinking about SQL. Let me show you how sqllex makes\nyour life easier. Imagine you need create some database, save some data\ninto it and take it back. That's how your code will look like.\n\n### If you never used SQLite before read [this awesome example](https://github.com/v1a0/sqllex/wiki/SQLite3x-%7C-SIMPLEST-EXAMPLE#simplest-sqlite3x-example) or [this one](https://deepnote.com/@abid/SQLLEX-Simple-and-Faster-7WXrco0hRXaqvAiXo8QJBQ#)\n```python\nfrom sqllex import *\n\ndb = SQLite3x(                              \n    path='my_database.db',                      \n    template={                              \n        \"users\": {                          \n            \"username\": [TEXT, NOT_NULL],   \n            \"age\": INTEGER,                 \n        }                                   \n    }                                       \n)\n\nusers = db[\"users\"]\n\nusers.insert('Sqllex', 33)\n\nusers_33 = users.find(age=33)\n\nprint(users_33)  # [['Sqllex', 33]]\n```\n\n<br>\n<details>\n<summary id=\"what1\"><big>WHAT IS GOING ON THERE?!</big></summary>\n\n```python\nfrom sqllex import *\n\n# Create some database, with simple structure\ndb = SQLite3x(                              # create database \n    path='my_data.db',                      # __str__ to your database, or where_ you would like it locate\n    template={                              # schema for tables inside your database                              \n        \"users\": {                          # name for the 1'st table\n            \"username\": [TEXT, NOT_NULL],   # 1'st column of table, named \"username\", contains text-data, can't be NULL\n            \"age\": INTEGER,                 # 2'nd column of table, named \"age\", contains integer value\n        }                                   # end of table\n    }                                       # end of schema (template)\n)\n\n# Ok, now you have database with table inside it.\n# Let's take this table as variable\nusers = db[\"users\"]\n\n# Now add record of 33 years old user named 'Sqllex' into it\n# Dear table, please insert ['Sqllex', 33] values \nusers.insert('Sqllex', 33)\n\n# Dear table, please find records where_ column 'age' == 33\nusers_33 = users.find(age=33)\n\n# Print results\nprint(users_33)  # [['Sqllex', 33]]\n```\n\n</details>\n\nOk, what if you need more complex structure with FOREIGN KEYs? Not a big deal.\n\n```python\n\"\"\"\n    For the first, you need to import * (all) from Sqllex lib and init your database\n\"\"\"\n\n# import * (all) from Sqllex\nfrom sqllex import *\n\n# Init-ing your databse\ndb = SQLite3x(path='my_awesome_db.db')\n\ndb.connect()  # It'll lock yor database until you disconnect, but makes sqllex work damn faster\n\n\"\"\"\n    Ok, now we need to create your tables into a database,\n    use create_table method (as SQL-like CREATE TABLE)\n\"\"\"\n\n# Creating Groups table\ndb.create_table(\n    name='groups',  # here is name of table\n    columns={  # here is table structure\n        'id': [INTEGER, PRIMARY_KEY, UNIQUE],  # group id\n        'name': [TEXT, NOT_NULL, DEFAULT, 'Unknown']  # group name\n    }\n)\n\n\"\"\"\n    And one more table\n\"\"\"\n\ndb.create_table(\n    'users',  # here is name of table\n    {\n        'id': [INTEGER, PRIMARY_KEY, UNIQUE],  # user id\n        'username': [TEXT, NOT_NULL, DEFAULT, 'Unknown'],  # user name\n        'user_group': INTEGER,  # the group user belongs to\n        FOREIGN_KEY: {\n            \"user_group\": [\"groups\", \"id\"]  # link to table groups, column id\n        }\n    }\n)\n\n\"\"\"\n    Well done, now let's add some groups and some users into your database\n    For example:\n        1: Admin\n        2: User\n        3: Guest\n\"\"\"\n\n# Record some groups for the first\n\ngroups = db['groups']\n\ngroups.insert(id=1, name=\"Admin\")  # You can add data like this\n\ngroups.insert([2, \"User\"])  # Or like this\n\ngroups.insert(3, 'Guest')  # Or like this\n\n# Same but without table object\n# db.insert('groups', id=1, name=\"Admin\")\n# db.insert('groups', [2, \"User\"])\n# db.insert('groups', 3, 'Guest')\n\n\"\"\"\n    Now let's add many users\n\"\"\"\n\n# Here we have a list of users in format: [id, name, group_id]\nusers_list = [\n    [0, \"User_0\", 1],\n    [1, \"User_1\", 2],\n    [2, \"User_2\", 3],\n    [3, \"User_3\", 1],\n    [4, \"User_4\", 2],\n    [5, \"User_5\", 3],\n    [6, \"User_6\", 1],\n    [7, \"User_7\", 2],\n    [8, \"User_8\", 3],\n    [9, \"User_9\", 1],\n]\n\nusers = db['users']\n\n# Insert it by one line\nusers.insertmany(users_list)\n\n# Done!\n\n\n\"\"\"\n    Now we need to take it back by select method (as SQL-like SELECT)\n\"\"\"\n\n# SELECT FROM (table) (what)\nusers_in_db = users.select('username')\n\nprint(users_in_db)\n# It'll print:\n# [['User_0',] ['User_1'], ['User_2'], ['User_3'], ['User_4'], ['User_5'], ['User_6'], ['User_7'], ['User_8'], ['User_9']]\n\n\n\"\"\"\n    Prefect, and now select some specific records\n    (only usernames where_ group_id parameter equalized 1)\n\"\"\"\n\ngroup_column = users['user_group']  # get 'user_group' column of table\n\nusers_1 = users.select(\n    ALL,\n    WHERE=(group_column == 1)\n)\n\nprint(users_1)\n# It'll print:\n# [[0, 'User_0'], [3, 'User_3'], [6, 'User_6'], [9, 'User_9']]\n\n\n# And some large example for some another imaginary table\n# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n# !!! CODE DOWN BELOW WOULD NOT WORK !!!\n# !!!  This is an example of syntax  !!!\n# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! \n\nusers.select(\n    SELECT=['username', 'group_name', 'description'],                        # SELECT username, group_name, description\n    JOIN=[                                                                   # JOIN\n        ['groups', AS, 'gr', ON, 'users.group_id == gr.group_id'],              # INNER JOIN groups AS gr ON us.group_id == gr.group_id\n        [CROSS_JOIN, 'about', 'ab', ON, 'ab.group_id == gr.group_id']        # CROSS JOIN about ab ON ab.group_id == gr.group_id\n    ],\n    WHERE= (users['username'] != 'user_1') & (users['username'] != 'user_2'),  # WHERE (users.username<>'user_1') AND (users.username<>'user_2')\n    ORDER_BY='age DESC',                                                     # order by age ASC\n    LIMIT=50,                                                                # limit = 50\n    OFFSET=20                                                                # offset = 20\n)\n\n# Same as SQL script like\n# SELECT username, group_name, description\n# FROM users\n# INNER JOIN groups AS gr ON us.group_id == gr.group_id\n# CROSS JOIN about ab ON ab.group_id == gr.group_id\n# WHERE (users.username<>'user_1') AND (users.username<>'user_2')\n# ORDER BY age DESC\n# LIMIT 50\n# OFFSET 20\n\ndb.disconnect()  # unlock your database\n\n```\n\n\n<details>\n<summary id=\"just_code_1\">Code without comments</summary>\n\n\n\n```python\nfrom sqllex import *\n\ndb = SQLite3x(path='my_awesome_db.db')\n\ndb.connect()\n\ndb.create_table(\n    name='groups',\n    columns={\n        'id': [INTEGER, PRIMARY_KEY, UNIQUE],\n        'name': [TEXT, NOT_NULL, DEFAULT, 'Unknown']\n    }\n)\n\ndb.create_table(\n    'users',\n    {\n        'id': [INTEGER, PRIMARY_KEY, UNIQUE],\n        'username': [TEXT, NOT_NULL, DEFAULT, 'Unknown'],\n        'user_group': INTEGER,\n        FOREIGN_KEY: {\n            \"user_group\": [\"groups\", \"id\"]\n        }\n    }\n)\n\n\ngroups = db['groups']\n\ngroups.insert(id=1, name=\"Admin\")\n\ngroups.insert([2, \"User\"])\n\ngroups.insert(3, 'Guest')\n\nusers_list = [\n    [0, \"User_0\", 1],\n    [1, \"User_1\", 2],\n    [2, \"User_2\", 3],\n    [3, \"User_3\", 1],\n    [4, \"User_4\", 2],\n    [5, \"User_5\", 3],\n    [6, \"User_6\", 1],\n    [7, \"User_7\", 2],\n    [8, \"User_8\", 3],\n    [9, \"User_9\", 1],\n]\n\nusers = db['users']\n\nusers.insertmany(users_list)\n\nusers_in_db = users.select('username')\n\nprint(users_in_db)\n\ngroup_column = users['user_group']\n\nusers_1 = users.select(\n    ALL,\n    WHERE=(group_column == 1)\n)\n\nprint(users_1)\n\nusers.select(\n    SELECT=['username', 'group_name', 'description'],\n    JOIN=[\n        ['groups', AS, 'gr', ON, 'users.group_id == gr.group_id'],\n        [CROSS_JOIN, 'about', 'ab', ON, 'ab.group_id == gr.group_id']\n    ],\n    WHERE= (users['username'] != 'user_1') & (users['username'] != 'user_2'),\n    ORDER_BY='age DESC',\n    LIMIT=50,\n    OFFSET=20\n)\n\ndb.disconnect()\n```\n\n</details>\n\n# [Not enough? Need examples? Read more in Sqllex Wiki! (link)](https://github.com/V1A0/sqllex/wiki)\n\n-----\n### Other\n#### [TODO-list](todo.md)\n\n\n",
    "bugtrack_url": null,
    "license": "gpl-3.0",
    "summary": "Better than sqlite3",
    "version": "0.1.10.3",
    "split_keywords": [
        "sql",
        "sql3",
        "sqlite",
        "sqlite3",
        "sqllex",
        "db",
        "database",
        "easy"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "8b6674428387147b68d2bb51bb29ae01",
                "sha256": "5fb439b8fb7968332fe65f412a043bc6aceebcfed9bfed0b28d4d73ede767e62"
            },
            "downloads": -1,
            "filename": "sqllex-0.1.10.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8b6674428387147b68d2bb51bb29ae01",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 39896,
            "upload_time": "2021-06-19T04:24:02",
            "upload_time_iso_8601": "2021-06-19T04:24:02.922207Z",
            "url": "https://files.pythonhosted.org/packages/a9/0f/3f8bcb9a8d650ecea08dfbd47a5d369af3a1268369db11532bf690c1dad3/sqllex-0.1.10.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "7c88e6d2fbd53995b6453c94e0f8e8fe",
                "sha256": "f4dad35b23aa81f438f3ed6274def917622b0377437aa9cd6db5daaab47e94b2"
            },
            "downloads": -1,
            "filename": "sqllex-0.1.10.3.tar.gz",
            "has_sig": false,
            "md5_digest": "7c88e6d2fbd53995b6453c94e0f8e8fe",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 38827,
            "upload_time": "2021-06-19T04:24:05",
            "upload_time_iso_8601": "2021-06-19T04:24:05.143791Z",
            "url": "https://files.pythonhosted.org/packages/e1/48/c4e9ffa1024ea8f69b8dbcea699b5e198e5022dd554aec4cd915b58ab02f/sqllex-0.1.10.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2021-06-19 04:24:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "v1a0",
    "github_project": "sqllex",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "colorama",
            "specs": [
                [
                    "==",
                    "0.4.4"
                ]
            ]
        },
        {
            "name": "loguru",
            "specs": [
                [
                    "==",
                    "0.5.3"
                ]
            ]
        },
        {
            "name": "win32-setctime",
            "specs": [
                [
                    "==",
                    "1.0.3"
                ]
            ]
        }
    ],
    "lcname": "sqllex"
}
        
Elapsed time: 0.33783s