Python module for querying dictionary or list object.
Project description
DLApp
DLApp is the query utility for dictionary or list.
Installation
pip install dlapp
Features
- support a simple wildcard characters ?, *, [], [!]
- support regex
- support custom keywords
- support SQL-like select statement
- support GUI application
Dependencies
Usage
(venv) test@test-machine ~ % dlapp --help
usage: dlapp [options]
dlapp application
optional arguments:
-h, --help show this help message and exit
--gui Launch a dlapp GUI application.
-f FILENAME, --filename FILENAME
JSON, YAML, or CSV file name.
-e {csv,json,yaml,yml}, --filetype {csv,json,yaml,yml}
File type can be either json, yaml, yml, or csv.
-l LOOKUP, --lookup LOOKUP
Lookup criteria for searching list or dictionary.
-s SELECT_STATEMENT, --select SELECT_STATEMENT
Select statement to enhance multiple searching criteria.
-t, --tabular Show result in tabular format.
-d, --dependency Show Python package dependencies.
-u {base,csv,json,yaml}, --tutorial {base,csv,json,yaml}
Tutorial can be either base, csv, json, or yaml.
(venv) test@test-machine ~ %
Getting Started
Development
>>> # test data
>>> lst_of_dict = [
... { "title": "ABC Widget", "name": "abc", "width": 500},
... { "title": "DEF Widget", "name": "def", "width": 300},
... { "title": "MNP Widget", "name": "mnp", "width": 455},
... { "title": "XYZ Widget", "name": "xyz", "width": 600}
... ]
>>>
>>> from dlapp import DLQuery
>>>
>>> query_obj = DLQuery(lst_of_dict)
>>>
>>> # find any value of title starting with A or X
>>> query_obj.find(lookup="title=_wildcard([AX]*)")
['ABC Widget', 'XYZ Widget']
>>>
>>> # find any data of title starting with A or X
>>> # and select title, width where width lt 550
>>> query_obj.find(lookup="title=_wildcard([AX]*)", select="SELECT title, width WHERE width lt 550")
[{'title': 'ABC Widget', 'width': 500}]
>>>
>>>
>>>
>>> # assuming /path/sample.json file has the same structure data as lst_of_dict
>>> from dlapp import create_from_json_file
>>>
>>> query_obj = create_from_json_file('/path/sample.json')
>>>
>>> query_obj.find(lookup="title=_wildcard([AX]*)")
['ABC Widget', 'XYZ Widget']
>>>
>>> # to query json string data, use
>>> from dlapp import create_from_json_data
>>>
>>>
>>>
>>> # to query yaml file, use
>>> from dlapp import create_from_yaml_file
>>>
>>> # to query yaml string data, use
>>> from dlapp import create_from_yaml_data
>>>
>>>
>>>
>>> # to query csv file, use
>>> from dlapp import create_from_csv_file
>>>
>>> # to query csv string data, use
>>> from dlapp import create_from_yaml_file
Console command line
Open DLApp application
$ dl-app # using python entry point
$ dlapp --gui # using console command line
$ python -m dlapp --gui # using python module invocation
Search json, yaml, or csv file
$ # assuming that /path/sample.json has the same structure data as lst_of_dict
$ dlapp --filename=/path/sample.json --lookup="title=_wildcard([AX]*)"
['ABC Widget', 'XYZ Widget']
$
$ dlapp --filename=/path/sample.json --lookup="title=_wildcard([AX]*)" --select="SELECT title, width WHERE width lt 550"
[{'title': 'ABC Widget', 'width': 500}]
$
$ # the same syntax can apply for yaml, yml, or csv file.
Bugs/Requests
Please use the GitHub issue tracker to submit bugs or request features.
Licenses
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dlapp-0.3.6.tar.gz
(37.5 kB
view details)
Built Distribution
dlapp-0.3.6-py3-none-any.whl
(40.8 kB
view details)
File details
Details for the file dlapp-0.3.6.tar.gz
.
File metadata
- Download URL: dlapp-0.3.6.tar.gz
- Upload date:
- Size: 37.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2372a5a4bc9fe4a96e8f5877c87337b80a2f7c6bb33ee41bcf548c34a63d7a1 |
|
MD5 | a7100b2e602e099a88605e73235cf859 |
|
BLAKE2b-256 | c183af2baf0d209f4a6ef13991f011e31369136ecc236fbc9cfa2869c62632ad |
File details
Details for the file dlapp-0.3.6-py3-none-any.whl
.
File metadata
- Download URL: dlapp-0.3.6-py3-none-any.whl
- Upload date:
- Size: 40.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e7f1aef0835afaecbe2888e94fbcb5a6850b92d7e74a6f4bbcb94b868eddc09 |
|
MD5 | 0b9403dda25bb0eb8be16d5ee8330c50 |
|
BLAKE2b-256 | 617e761333c8c0f1860ac9ac614090e64efa3bdd55f199fba97ffe7869e0067e |