v1a0 / sqllex

The most pythonic ORM (for SQLite and PostgreSQL). Seriously, try it out!
https://v1a0.github.io/sqllex
GNU General Public License v3.0
92 stars 8 forks source link

ISSUE | Imports in doc's examples #60

Open v1a0 opened 2 years ago

v1a0 commented 2 years ago

Some doc's examples (like this) have implicit imports:

from sqllex import *

db = SQLite3x(path=...)

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

It's kind off unclear what is actually importing from package, it can be some classes or constants or functions. And if you use this way in your project it may be confused whch classes and constants is "yours" and whats imported from sqllex. And also namespace collisions.

That's why I decided to change it this way:

import sqllex as sx

db = sx.SQLite3x(path=...)

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

Now if you see sx prefix than it's 100% clear this element is as part of sqllex package. Yes, code becomes a little bit longer but you see where did the variables come from.

Explicit is better than implicit — PEP20