Skip to main content

A tool for giving meaningful names to file and directory paths

Project description

# Onde

Onde ('OWN-jee') is a simple Python tool for naming and referencing file and directory paths meaningfully.


## Usage
Install Onde with pip:

`pip install onde`

To use Onde, create a YAML file named `paths.yml` in the root directory of your project that maps important files and directories to convenient aliases that you can use to refer to those files.


**paths.yml**
```yaml
- some_alias:
- "/some_absolute_path/some_file.txt"
- another_alias:
- "some_relative_path/another_file.txt"
- A third alias:
- "~/some_folder/a_file.txt"
```

You then use Onde by instantiating it and calling `paths`:

```python
>>> from onde import Onde

>>> onde = Onde()

>>> onde.path('some_alias')
'/some_absolute_path/some_file.txt'

>>> onde.path('another_alias')
'some_relative_path/another_file.txt'

>>> onde.path('A third alias')
'/Users/myusername/some_folder/a_file.txt'
```


Paths can include variables, which are wrapped in curly braces. When calling `paths()` you can fill in the variables:

**paths.yml**
```yaml
- my_alias:
- path:
- "/{my_directory}/{my_file}.txt"
```

```python
>>> from onde import Onde

>>> Onde().path('my_alias', 'hey_there', my_file='hows_it_going')
'/hey_there/hows_it_going.txt'
```

Directories can be nested, to make it easy to refer to represent multiple significant locations within a file system:

**paths.yml**
```yaml
- top_level:
- "some/folder"
- thing1:
- "path/to/child_1"
- thing2:
- "path/to/child_2"
- deeply_embedded_thing:
- "deeply/embedded/thing.txt"
```

```python
>>> from onde import Onde

>>> onde = Onde()

>>> onde.path('top_level')
'some/folder'

>>> onde.path('thing1')
'some/folder/path/to/child1'

>>> onde.path('thing2')
'some/folder/path/to/child2'

>>> onde.path('deeply_embedded_thing')
'some/folder/path/to/child2/deeply/embedded/thing.txt'
```


Aliases must be unique within the paths YAML file. Attempting to import a YAML file with duplicate aliases will raise an exception.

Path variables must also be unique for each path.

A well-formed Onde paths file should be in the format:
```yaml
- alias:
- 'path_segment'
- child_alias:
- 'path_segment'
- child_alias:
- 'path_segment'
```

Each mapping has a single alias as its key and a list as the value of that key. The first item in the list is a


## Contributing
Pull requests are welcome!

To install: `python setup.py install`
To run tests: `python setup.py test`

## License
Onde is written by Aaron Knight <iamaaronknight@gmail.com>. It is released
under the MIT license. See the LICENSE.txt file for more details.



Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onde-0.1.1.tar.gz (4.9 kB view hashes)

Uploaded Source

Built Distribution

onde-0.1.1-py3-none-any.whl (5.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page