A command line program to track writing progress
Project description
Squirrel
Very much a WIP project
squirrel is a command line program that tracks you writing progress and gives you useful information and cute pictures of squirrels.
How it works
Squirrel's design was inspired by git
's design (from a user perspective at least). To start a project, you have to initialize a new project in your directory of choice which will create a .squirrel
folder structure in your directory similar to .git
directories.
And that folder will hold information about the project in general and the word counts.
However squirrel
is not a static program otherwise we wouldn't be able to track progress without explicit input of the user. That's why we need to have a watch
command that will listen to any changes and update the appropriate information.
Plugins or Project Types
As many writing project use many file formats and programs, squirrel has a plugin architecture to have many ways to count words.
Which plugin will used depends on the project-type
field.
Here are the plugins available now:
- text
- texcount
hmm, haven't found your project type? you can write Python code? Please make a pull request :)
Requirement & Installation
Tested Python versions:
- python 3.8
- python 3.9
- python 3.10
Python versions:
All pip dependencies are in the Pipfile
file.
Users
You can install squirrel
with pip
pip install squirrel-writer
Devs
Grab the repo, install dependencies, and voila.
git clone https://github.com/squirrel-writer/squirrel
cd squirrel
pipenv install --dev && pipenv shell
# Install the package in editable mode
# use pip with this command, so that Pipfile doesn't get modified
pip install -e .
# To run unittests
pytest
# Or use tox to run tests on multiple versions
tox
Usage
There 4 main verbs to interact with squirrel:
- init
- watch
- set
- overview
You can about their options with -h
or --help
option. (e.g squirrel init -h
, etc.)
Init
squirrel init -n Assay --project-type text
Set
Set can be used after init to change or set fields.
squirrel set --name "English Assay" --goal 10000 -due 05/01/2022
Watch
Run this command to tell squirrel to watch your writing.
squirrel watch start --daemon
squirrel watch status
squirrel watch stop
Contributors
How can you help
If you're looking to help squirrel
become better, we're always looking
for people to test, report any bugs, improve documentation,
and submit any fixes or features.
Any contribution (even documentation) goes a long way.
Pull Requests
PRs are welcome :). Make sure to open an issue before submitting the PR so that everybody can chip in with their opinion.
If your PR with be changing some dependencies, don't forget to update Pipfile.lock
as well as the dependencies in setup.py
with pipenv-setup
.
Testing
The testing suite is very small at the moment (about 7 tests). We need help in making it robust and exhaustive. Any contribution on this regard is highly appreciated.
squirrel
is still in an experimental stage. Bugs are probably present, so any testing and bug reporting is welcome.
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
Built Distribution
File details
Details for the file squirrel-writer-0.0.2.tar.gz
.
File metadata
- Download URL: squirrel-writer-0.0.2.tar.gz
- Upload date:
- Size: 205.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a474cd17453a20cb8f959d69cae1ffd5d9fb7eaf7d58c6ec9ef844e7e8d78920 |
|
MD5 | b8cc7ff048f8ca42823b55adc674047f |
|
BLAKE2b-256 | a7387b7ef857a6d8c32b77420dd58c55d5c6008684f10dba4d06ed9b9048405e |
File details
Details for the file squirrel_writer-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: squirrel_writer-0.0.2-py3-none-any.whl
- Upload date:
- Size: 27.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52a592ba73da9b72d55e6636af13b0508546a11280a4e1e6a1f7dba23c27ad45 |
|
MD5 | 40ccb37b5a8128c011877ef3858917eb |
|
BLAKE2b-256 | 11f7efed7869f315df6379d62f38a23ebcfe647505c26c9801a9c568e0465f9e |