Package
This commit is contained in:
parent
d2b634d87d
commit
fd2c2c3b12
12 changed files with 252 additions and 4 deletions
105
.gitignore
vendored
105
.gitignore
vendored
|
@ -1,3 +1,104 @@
|
||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
__pycache__/
|
__pycache__/
|
||||||
*.pyc
|
*.py[cod]
|
||||||
*.pyo
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
.Python
|
||||||
|
build/
|
||||||
|
develop-eggs/
|
||||||
|
dist/
|
||||||
|
downloads/
|
||||||
|
eggs/
|
||||||
|
.eggs/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
parts/
|
||||||
|
sdist/
|
||||||
|
var/
|
||||||
|
wheels/
|
||||||
|
*.egg-info/
|
||||||
|
.installed.cfg
|
||||||
|
*.egg
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
# PyInstaller
|
||||||
|
# Usually these files are written by a python script from a template
|
||||||
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
*.manifest
|
||||||
|
*.spec
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
pip-delete-this-directory.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
htmlcov/
|
||||||
|
.tox/
|
||||||
|
.coverage
|
||||||
|
.coverage.*
|
||||||
|
.cache
|
||||||
|
nosetests.xml
|
||||||
|
coverage.xml
|
||||||
|
*.cover
|
||||||
|
.hypothesis/
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
.static_storage/
|
||||||
|
.media/
|
||||||
|
local_settings.py
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
|
# Sphinx documentation
|
||||||
|
docs/_build/
|
||||||
|
|
||||||
|
# PyBuilder
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Jupyter Notebook
|
||||||
|
.ipynb_checkpoints
|
||||||
|
|
||||||
|
# pyenv
|
||||||
|
.python-version
|
||||||
|
|
||||||
|
# celery beat schedule file
|
||||||
|
celerybeat-schedule
|
||||||
|
|
||||||
|
# SageMath parsed files
|
||||||
|
*.sage.py
|
||||||
|
|
||||||
|
# Environments
|
||||||
|
.env
|
||||||
|
.venv
|
||||||
|
env/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
env.bak/
|
||||||
|
venv.bak/
|
||||||
|
|
||||||
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
.spyproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# mkdocs documentation
|
||||||
|
/site
|
||||||
|
|
||||||
|
# mypy
|
||||||
|
.mypy_cache/
|
||||||
|
|
8
CHANGELOG.md
Normal file
8
CHANGELOG.md
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# Changelog
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
Initial release
|
17
README.md
Normal file
17
README.md
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# mmcli
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Development
|
||||||
|
To create a virtualenv and install the dependencies in it:
|
||||||
|
```
|
||||||
|
tools/create_venv.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Activate the virtualenv with `source venv/bin/activate`. To make this easier, you could create
|
||||||
|
an [alias][] `alias venv='source venv/bin/activate'` in your shell.
|
||||||
|
|
||||||
|
[alias]: https://www.computerworld.com/article/2598087/how-to-use-aliases-in-linux-shell-commands.html
|
||||||
|
|
||||||
|
If you introduce dependencies, list them in `pyproject.toml` under `dependencies`, and run
|
||||||
|
`tools/update_requirements.sh`.
|
0
mmcli/__init__.py
Normal file
0
mmcli/__init__.py
Normal file
|
@ -9,9 +9,9 @@ import re
|
||||||
from time import sleep
|
from time import sleep
|
||||||
import threading
|
import threading
|
||||||
import mattermost
|
import mattermost
|
||||||
from parsedt import parse_datetime_to_utc
|
from .parsedt import parse_datetime_to_utc
|
||||||
|
|
||||||
from mmws import MMws
|
from .mmws import MMws
|
||||||
|
|
||||||
|
|
||||||
class NotFound(Exception):
|
class NotFound(Exception):
|
51
pyproject.toml
Normal file
51
pyproject.toml
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
[project]
|
||||||
|
name = "mmcli"
|
||||||
|
version = "0.0.1"
|
||||||
|
authors = [
|
||||||
|
{ name="Midgard", email="midgard@zeus.ugent.be" },
|
||||||
|
]
|
||||||
|
description = "Mattermost command-line interface"
|
||||||
|
readme = "README.md"
|
||||||
|
|
||||||
|
# Choose from the list at https://pypi.org/classifiers/
|
||||||
|
classifiers = [
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
|
||||||
|
"Operating System :: OS Independent",
|
||||||
|
"Natural Language :: English",
|
||||||
|
"Environment :: Console",
|
||||||
|
|
||||||
|
#"Development Status :: 1 - Planning",
|
||||||
|
#"Development Status :: 2 - Pre-Alpha",
|
||||||
|
"Development Status :: 3 - Alpha",
|
||||||
|
#"Development Status :: 4 - Beta",
|
||||||
|
#"Development Status :: 5 - Production/Stable",
|
||||||
|
#"Development Status :: 6 - Mature",
|
||||||
|
#"Development Status :: 7 - Inactive",
|
||||||
|
|
||||||
|
"Intended Audience :: End Users/Desktop",
|
||||||
|
"Topic :: Utilities",
|
||||||
|
]
|
||||||
|
|
||||||
|
requires-python = ">=3.7"
|
||||||
|
dependencies = [
|
||||||
|
"python-dateutil >= 2.8.2, < 3.0.0",
|
||||||
|
"mattermost >= 5.33.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.urls]
|
||||||
|
#"Homepage" = ""
|
||||||
|
"Source" = "https://git.zeus.gent/midgard/mmcli"
|
||||||
|
"Change log" = "https://git.zeus.gent/midgard/mmcli/-/blob/master/CHANGELOG.md"
|
||||||
|
"Bug tracker" = "https://git.zeus.gent/midgard/mmcli/-/issues"
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["setuptools"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
|
[project.scripts]
|
||||||
|
# executable-name = "package.subpackage.module:function"
|
||||||
|
mmcli = "mmcli.mmcli:main"
|
||||||
|
|
||||||
|
[tool.setuptools.packages]
|
||||||
|
find = {}
|
4
tools/clean.sh
Executable file
4
tools/clean.sh
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cd "`dirname "$0"`"/..
|
||||||
|
rm -rf ./build/ ./*.egg-info/ ./dist/ ./__pycache__/ ./*/__pycache__/
|
8
tools/create_venv.sh
Executable file
8
tools/create_venv.sh
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cd "`dirname "$0"`"/..
|
||||||
|
|
||||||
|
# Create virtualenv
|
||||||
|
python3 -m virtualenv venv/
|
||||||
|
# Install dependencies
|
||||||
|
venv/bin/pip install -e .
|
43
tools/release.sh
Executable file
43
tools/release.sh
Executable file
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cd $(dirname "$0")/..
|
||||||
|
|
||||||
|
tools/test.sh
|
||||||
|
|
||||||
|
if [ ! -t 0 ] ; then
|
||||||
|
echo "release.sh should be run with a terminal attached to stdin" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
git status
|
||||||
|
|
||||||
|
echo -n "Previous version: v"
|
||||||
|
prev_version="$(python -c 'print(__import__("tomllib").load(open("pyproject.toml", "rb"))["project"]["version"])')"
|
||||||
|
echo "$prev_version"
|
||||||
|
read -p "Enter new version: v" version
|
||||||
|
|
||||||
|
tagid=v"$version"
|
||||||
|
if [ "$version" != "$prev_version" ]; then
|
||||||
|
sed -i 's/version = ".*"/version = "'"$version"'"/q' pyproject.toml
|
||||||
|
sed -i 's/## \[Unreleased\]/&\n### Added\n### Changed\n### Deprecated\n### Removed\n### Fixed\n### Security\n\n## ['"$version"'] - '"$(date --utc +%Y-%m-%d)"'/' CHANGELOG.md
|
||||||
|
echo; echo "Inspect CHANGELOG..."
|
||||||
|
${EDITOR:-nano} CHANGELOG.md
|
||||||
|
git add pyproject.toml CHANGELOG.md
|
||||||
|
git commit -m "Bump version to $version"
|
||||||
|
|
||||||
|
echo "Creating git tag $tagid"
|
||||||
|
git tag -s -m "Version $version" "$tagid"
|
||||||
|
else
|
||||||
|
echo "Version already created; building wheel and uploading"
|
||||||
|
fi
|
||||||
|
|
||||||
|
venv/bin/pip install --upgrade build
|
||||||
|
venv/bin/python -m build
|
||||||
|
|
||||||
|
read -p "Upload to Git and PyPI? (y/N) " confirm
|
||||||
|
if [ ! "$confirm" = y ]; then "Abort"; exit 1; fi
|
||||||
|
|
||||||
|
python3 -m twine upload dist/*-${version}*
|
||||||
|
git push origin "$tagid" master
|
16
tools/update_requirements.sh
Executable file
16
tools/update_requirements.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cd "`dirname "$0"`"/..
|
||||||
|
|
||||||
|
if [ ! -f venv/bin/pip-compile ]; then
|
||||||
|
venv/bin/pip install pip-tools
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<EOF > requirements.txt
|
||||||
|
#
|
||||||
|
# This file is autogenerated. To update, run:
|
||||||
|
# tools/update_requirements.sh
|
||||||
|
#
|
||||||
|
EOF
|
||||||
|
venv/bin/pip-compile --quiet --generate-hashes --annotate --no-header --output-file="-" >> requirements.txt
|
||||||
|
echo "Updated requirements.txt"
|
Loading…
Reference in a new issue