Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alancoding/awork
bottom up rewrite of tower-cli
https://github.com/alancoding/awork
tower-cli
Last synced: 4 days ago
JSON representation
bottom up rewrite of tower-cli
- Host: GitHub
- URL: https://github.com/alancoding/awork
- Owner: AlanCoding
- Created: 2018-06-04T20:09:28.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-06-12T13:30:44.000Z (over 6 years ago)
- Last Synced: 2024-11-09T04:39:19.282Z (about 2 months ago)
- Topics: tower-cli
- Language: Python
- Homepage:
- Size: 137 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### AWORK a CLI client for AWX
Awork is mainly a simplified demonstration of the core functionality of
tower-cli through the click library.Awork stands for "Awork is not tower-cli". Don't ask me how that works.
```
awork foo bar 34 -b foobar
root command: awork (of course)
resource category name: foo
action name: barcall args: ()
call kwargs: {'pk': 34, 'baz': u'foobar'}
```This is a basic example to show the command resolution of awork, and
also of tower-cli.- `foo` is a subcommand of the main entry point
- `bar` is a subcommand of `foo`, which is the "action" part of the command
- `-b` is an option
- `pk` is an argument#### Headline features of rewrite
These are the user-facing more important features that this is trying to sell:
- No manual maintaining of fields list
- Tower version and API version switchable by server or user
- Accurate handling of uniqueness rules, no duplicate specification#### Code structure points
Prohibited items:
- decorators
- metaclasses
- minimal in-line importsYou could say that part of this refactor had already begun with the
divorcing of the models/resources from the cli folder, where the command
classes became logically organized in terms of root command, resource
command, and then action command.This rewrite is intended to destroy the `tower_cli/resources` folder
entirely, replacing it with `tower_cli/schema`.For now, the schema is generated (`make schema`), but the idea is that
eventually, a more comprehensive schema could be officially published,
and that would be used instead.Still to do goal: _Nothing_ in the cli folders are to do anything
programatically non-trivial that is unconnected to the CLI interface.
Instead, all _functional_ interactions with the server will go
in the `tower_cli/models`, so that CLI users are not privileged over
the python users.#### Legal
This is not sponsored by any company or anything like that.
I just made the repository on my own, it is not in intended for _use_
at all.### Timings
As of 2nd commit, with zip_safe off:
```
real 0m0.232s
user 0m0.142s
sys 0m0.062s
```With zip_safe on:
```
real 0m0.187s
user 0m0.133s
sys 0m0.050s
```