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
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|