autometa library prototype
Project description
Autometa
Autometa is a simple & focused solution to reading metadata from a variety of file formats into a python class obj
---- Using Autometa Object ---- (Best if using files or for improved functionality)
>>> import autometa
>>> md = Autometa(absolute_file_path="/example/file/path") # optional to pass filepath... use for metadata file
>>> md.update_metadata(toml_var="META_TOML") #toml_var only needed if you are reading a toml string from a .py
>>> md.get_metadata()
{'project': {'dependencies': ['example1', 'example2', 'example3']}}
>>> md.parse_dependencies()
"Dependencies successfully parsed: ['example1', 'example2', 'example3']"
>>>md.pip_install_dependencies(dependencies=["additionalPkg1", "additionalPkg2"]) # installs related packages as well
'''Collecting additionalPkg1 -> install attempt... Collecting additionalPkg2 -> install attempt...
Collecting example1... -> install attempt, Collecting example2 -> install attempt... ,
Collecting example3 -> install attempt... '''
>>> md.pip_uninstall_dependencies(exclusions=["additionalPkg1","example1"])
# will remove newly installed related packages as well
'''Found existing installation: example2 -> Uninstalling example2...
Found existing installation: example3 -> Uninstalling example3...
'''
---- Using Autometa API ---- (Quicker but less functionality-- Uninstall API not as fully developed as autometa object)
>>> import autometa
>>> md = autometa.fetch_metadata(absolute_file_path="/example/file/path", toml_var="META_TOML") #toml_var only needed
# if you are reading a toml string from a .py
{'project': {'dependencies': ['example1', 'example2', 'example3']}}
>>> dependencies = autometa.fetch_dependencies(absolute_file_path="/example/file/path", toml_table_key="project",
toml_table_value="dependencies")
"Dependencies successfully parsed: ['example1', 'example2', 'example3']"
>>>md = autometa.pip_install(absolute_file_path="/example/file/path",
manual_input_list=["additionalPkg1", "additionalPkg2"],
toml_table_key="project",toml_table_value="dependencies")
'''Collecting additionalPkg1 -> install attempt... Collecting additionalPkg2 -> install attempt...
Collecting example1... -> install attempt, Collecting example2 -> install attempt... ,
Collecting example3 -> install attempt... '''
>>> md.pip_uninstall(absolute_file_path="/example/file/path",
exclusions_list = ["example1","additionalPkg1","additionalPkg2"],
toml_table_key="project",toml_table_value="dependencies")
'''Found existing installation: example2 -> Uninstalling example2...
Found existing installation: example3 -> Uninstalling example3...
'''
autometa allows you to easily parse in data from .json, .yaml/.yml, .toml, and .py files into a dictionary object in a python class object with a helper function to parse in a list of dependencies listed in said files.
Installing autometa
autometa is available on PyPI:
$ python -m pip install autometa
Features & Best Practices
- Parse in a variety of formatted data into an object holding a dictionary of parsed data using a single function call
- Pip install / uninstall a list of user-input or file-fed dependencies
- By default, dependencies are searched for under a structure that looks like this:
-
for .json:
{
"project":
{
"dependencies": ['example1', 'example2', 'example3']
}
}\ -
for .yaml/.yml:
project:
dependencies: ['example1', 'example2', 'example3']\ -
for .toml
[project]
dependencies = ["scrapy", "requests", "numpy"]\ -
for .py
META_TOML = '''
[project]
dependencies = ["man", "thing", "wahoo"]
'''\
-
Cloning the repository
git clone https://github.com/mikl-o/autometa.git
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.