Skip to main content

A python package that automates your workflow

Project description

🔥 Autoflow 🔥

Automating your project workflows and making your life easier!


🔥 Introduction

Welcome to 🔥 Autoflow 🔥, the command-line tool that automates all of your project initializations and project setups!

Using this CLI, you will be able to use your time more productively by working through your project instead of going through tedious parts of the initialization workflow. You'll be able to jump to multiple projects from anywhere, start your project backends more easily, and set up new projects with less commands.

🔥 Support

  • Languages/Project types supported:
  • OS support:
  • Python versions supported:

🔥 Get Started

Let's install our package!

pip install python-af

or

pip3 install python-af

There's also one configuration that needs to be done. First, move to the package directory:

cd ~/.autoflow

There, you will find an af-config.json file. This is your global configuration file that enables Autoflow to link to your projects directory, open your text editor, or push to your GitHub. The defaults are set as below:

{
      "defaultDirectory": Path.home()
      "defaultTextEditor": "nano",
      "github_token": "${{ secrets.GITHUB_TOKEN }}"
}

Replace the default directory config with the path to wherever you keep your projects and the default text editor config with whatever you like to use for your editor(ie. "code" for VSCode). The github token config is set up for use in our CI/CD workflow and will not actually work for you. Replace it with your personal access token, which you can generate by going to github.com, going to Settings, clicking on "Developer Settings" on the right-side menu, clicking on "Personal Access Tokens" in the new menu, and clicking "Generate new token" in the right upper corner.

You are now set up to use Autoflow!

🔥 Usage

In order use Autoflow with any specific project, you will have to have a local configuration file within that project folder called af-config.json. This is how it should be set up:

{
     "type": "<project type>",
     "command": "<start server command for project>"
}

This is to ensure that the af start command works properly and starts your project backend if you have one. The project types supported are listed in the Support section.

In order to have these instructions again and see the commands you can run, run this command in your terminal: af --help. This will give you everything you need to start using this package and is similar to the instructions found here.

🔥 Autoflow in Action

🔥 Command: af jump

autoflow git-cli

🔥 Command: af new

autoflow git-cli

🔥 Command: af start

autoflow git-cli

🔥 Command: af git-cli

autoflow git-cli

🔥 Tech Stack:

  • CLI Backend:
  • Languages:
  • Testing:
  • CI/CD:
  • Version Control:

🔥 Testing

We used multiple tools to enable unit testing and CI/CD for this project. For testing, we used pytest and click.testing to invoke the commands and test their outputs in several situations in one test script. This test script is setup to work with GitHub Actions, which is what we used for our CI/CD workflow. We were able to implement unit tests in this way, and all the tests are commented through to enable easy read-through for other potential contributors.

GitHub actions allowed us to run multiple builds with multiple operating systems(macOS and Ubuntu) and multiple python versions(3.6, 3.7, 3.8). Once we add support for Windows, we will add that build to our matrix as well. As of right now, every time we push to the main branch of this project or merge something to the main branch, the GitHub actions testing workflow will run.

We will also be using releases to keep track of our versions. Our version released on November 24th will be version 1.

🔥 What We Learned

  • Subprocesses in Python
  • Testing with pytest
  • Linting with flake8
  • Setting up CI/CD with GitHub Actions
  • Building a CLI with Python
  • Publishing a package to PyPi
  • Using the GitHub API for our CLI

In regards to soft skills, we learned to ask for help from our MLH mentors instead of trying to solve problems with little success.

🔥 Contributing

Autoflow is fully Open-Source and open for contributions! We request you to respect our contribution guidelines as defined in our CODE OF CONDUCT and CONTRIBUTING GUIDELINES.

❤ Contributors

Made with ❤️️ by Team Autoflow as part of MLH Explorer Fall Fellowship 2020 Sprint 4.

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

python-af-1.0.0.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

python_af-1.0.0-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file python-af-1.0.0.tar.gz.

File metadata

  • Download URL: python-af-1.0.0.tar.gz
  • Upload date:
  • Size: 19.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.23.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.6

File hashes

Hashes for python-af-1.0.0.tar.gz
Algorithm Hash digest
SHA256 031e6b3431313f4aebcde4b8a1ab9b23880853020d46b302ba15f63747046a87
MD5 b6b24be343eabd4c6c096ea254c42710
BLAKE2b-256 cf4e2f19014667e5eebd38f6c2515393adabf12b6003a9de9f3b88121c0e22e6

See more details on using hashes here.

Provenance

File details

Details for the file python_af-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: python_af-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.23.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.6

File hashes

Hashes for python_af-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bea5927b71861651b3d324aa34a060997cfb8fe1969f4f1144ff497ee23b682b
MD5 4ee0fceca4f7a72dc0842705b6a063de
BLAKE2b-256 21e701b3af264eb248739b1e080b02bfc75036dae3094984378b6b1a8ca576d6

See more details on using hashes here.

Provenance

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