Metadata-Version: 2.4
Name: acq
Version: 0.2.3
Summary: automatic acquisition of modules from packages
Home-page: https://git.sr.ht/~monokrome/acq
Author: Bailey "monokrome" Stoner
Author-email: monokrome@monokro.me
Maintainer: Bailey "monokrome" Stoner
Maintainer-email: monokrome@monokro.me
License: BSD 3-Clause License
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: description
Dynamic: description-content-type
Dynamic: license-file
Dynamic: summary

# acq [![builds.sr.ht status](https://builds.sr.ht/~monokrome/acq.svg)](https://builds.sr.ht/~monokrome/acq)


### What it is?!

This library provides a simple and convenient way to
automatically search packages for modules and import them
without needing project files to manually import them, which
allows for automatic configuration and other useful mechanics
within projects.


### Installation

You can install this module via pip or your preferred dependency management
tool(s):

    pip install acq


### Usage

In standard Python applications, the tool can be used in the following ways:

```python
from acq import discover

# Import modules 'a' and 'b' from packages "example1" and "example2"
discover('a', 'b', package_names=['example1', 'example2'])
```

Furthermore, you can extend this functionality to provide you all classes or
instances matching a specific class within discovered modules:

```python
from csv import DictReader
from acq import discover

# Import modules 'readers' from packages "example1" and "example2"
# and get any instances, subclasses of, or references to
# DictReader from within them
results = discover(
    'readers',
    package_names=['example1', 'example2']),
    types=(DictReader,),
)

print(list(results.DictReader))
```

In Django applications, you can automatically import from INSTALLED_APPS via:

```python
from acq.django import discover

# Import views.py for all packages in the INSTALLED_APPS setting
discover('views')

# Import views.py for all packages in an AUTOSEARCH_MODULES setting
discover('views', packages_setting_name='AUTOSEARCH_MODULES')

```


### Contributing

Thank you for considering use of this project, and please feel
free to provide any suggestions in pull requests if you have
any!
