calcleaner


Namecalcleaner JSON
Version 1.1.3 PyPI version JSON
download
home_pagehttps://calcleaner.flozz.org/
SummaryA simple graphical tool to purge old events from CalDAV calendars
upload_time2023-05-26 11:36:08
maintainer
docs_urlNone
authorFabien LOISON
requires_python
licenseGPLv3
keywords calendar caldav event cleaner purge prune
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            CalCleaner
==========

|Github| |Discord| |Github Actions| |Black| |License|

    A simple graphical tool to purge old events from CalDAV calendars

.. figure:: ./screenshot.png
   :alt: Screenshot of Calcleaner


Requirements
------------

Python:

* `PyGObject <https://pygobject.readthedocs.io/en/latest/>`_
* `caldav <https://github.com/python-caldav/caldav>`_


Install
-------

Flatpak (Linux)
~~~~~~~~~~~~~~~

A Flatpak package is available on Flathub. This is currently the simplest way
to install CalCleaner on all major Linux distributions:

* https://flathub.org/apps/details/org.flozz.calcleaner


Linux (source)
~~~~~~~~~~~~~~

First, you will need to install some dependencies on your system. On Debian and
Ubuntu this can be achieved with the following command::

    sudo apt install git build-essential python3 python3-dev python3-pip libgirepository1.0-dev pkg-config gir1.2-gtk-3.0

Then clone this repository and navigate to it::

    git clone https://github.com/flozz/calcleaner.git
    cd calcleaner

Then install CalCleaner using pip::

    sudo pip3 install .

Finally, you can install desktop file, icons and manual using the following
command::

    sudo ./linuxpkg/copy-data.sh /usr


Linux (PyPI)
~~~~~~~~~~~~

First, you will need to install some dependencies on your system. On Debian and
Ubuntu this can be achieved with the following command::

    sudo apt install git build-essential python3 python3-dev python3-pip libgirepository1.0-dev pkg-config gir1.2-gtk-3.0

Then install CalCleaner using pip::

    sudo pip3 install calcleaner

**NOTE:** Installing from PyPI will not install ``.desktop`` file and man page.
You will not be able to run the software from your graphical app menu (GNOME
Shell,...).


Contributing / Hacking
----------------------

Questions
~~~~~~~~~

If you have any question, you can:

* `open an issue <https://github.com/flozz/calcleaner/issues>`_ on Github,
* or `ask on Discord <https://discord.gg/P77sWhuSs4>`_ (I am not always
  available for chatting but I try to answer to everyone).


Bugs
~~~~

If you found a bug, please `open an issue
<https://github.com/flozz/calcleaner/issues>`_ on Github with as much
information as possible:

* What is your operating system / Linux distribution (and its version),
* How you installed the software,
* All the logs and message outputted by the software,
* ...


Pull Requests
~~~~~~~~~~~~~

Please consider `filing a bug <https://github.com/flozz/calcleaner/issues>`_
before starting to work on a new feature. This will allow us to discuss the
best way to do it. This is of course not necessary if you just want to fix some
typo or small errors in the code.

Please note that your code must pass tests and follow the coding style defined
by the `pep8 <https://pep8.org/>`_. `Flake8
<https://flake8.pycqa.org/en/latest/>`_ and `Black
<https://black.readthedocs.io/en/stable/>`_ are used on this project to enforce
coding style.


Translating Calcleaner
~~~~~~~~~~~~~~~~~~~~~~

If the software is not available in your language, you can help translate it.

To translate Calcleaner, you can submit your translations using a Pull Request
on Github,

Do not forget to add your name as the translation of the ``translator-credits``
key (one name per line, e-mail is optional)::

    msgid "translator-credits"
    msgstr ""
    "John DOE\n"
    "Other TRANSLATOR <foobar@example.org>\n"


Running the project
~~~~~~~~~~~~~~~~~~~

First, install dependencies (preferably in a virtualenv)::

    pip install -e ".[dev]"

Then run::

    python -m calcleaner


Coding Style / Lint
~~~~~~~~~~~~~~~~~~~

This project follows `Black's <https://black.readthedocs.io/en/stable/>`_ coding style.

To check coding style, you will first have to install `nox <https://nox.thea.codes/>`_::

    pip3 install nox

Then you can check for lint error (Flake8 and Black)::

    nox --session lint

You can fix automatically coding style with::

    nox -s black_fix


Tests
~~~~~

Tu run tests, you will first have to install `nox <https://nox.thea.codes/>`_::

    pip3 install nox

Then run the following command::

    nox -s test


Extract, Update or Build Translations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

You will first have to install `nox <https://nox.thea.codes/>`_::

    pip3 install nox

To extract messages and update locales run::

    nox --session locales_update

To compile locales, run::

    nox --session locales_compile

**NOTE:** you will need to have ``xgettext``, ``msgmerge`` and ``msgfmt``
executable installed on your system to run the above commands. On Debian /
Ubuntu, they can be installed with the following command::

    sudo apt install gettext


Regenerating Icons
~~~~~~~~~~~~~~~~~~

To regenerate icons, Inkscape must be installed. On Debian and Ubuntu you can
install it with the following command::

    sudo apt install inkscape

You will also need `nox <https://nox.thea.codes/>`_ to run the generation
command::

    pip3 install nox

Once everithing installed, you can regenerate icons with the following command::

    nox -s gen_icons


Supporting this project
-----------------------

Wanna support this project?

* `☕️ Buy me a coffee <https://www.buymeacoffee.com/flozz>`__,
* `❤️ sponsor me on Github <https://github.com/sponsors/flozz>`__,
* `💵️ or give me a tip on PayPal <https://www.paypal.me/0xflozz>`__.


Changelog
---------

* **[NEXT]** (changes on ``master`` but not released yet):

  * Nothing yet ;)

* **v1.1.3:**

  * Added Turkish translation (@sabriunal, #8)

* **v1.1.2:**

  * Added Croatian translation (@milotype, #7)
  * Added Python 3.11 support

* **v1.1.1:**

  * Added German translation (Jürgen Benvenuti)

* **v1.1.0:**

  * UI improvements:

    * Double border removed in calendar view
    * Accessibility improved by changing the widgets used to build the "pages"
      of the main window

  * Translations:

    * Dutch (#5, @Vistaus)
    * Brazilian Portuguese (incomplete)

* **v1.0.0:**

  * Allow to disable SSL certificate validation (self-signed certificate, etc.)
  * Improve error message on SSL errors
  * Set the user agent string to "CalCleaner/<VERSION>"
  * Fix calendar of removed account still displayed after closing account
    management dialog
  * Fix a crash when cleaning an empty (malformed) event
  * Italian translation (#1, @albanobattistella)

* **v0.9.1 (beta):**

  * Fix data not included in packages

* **v0.9.0 (beta):**

  * Initial release
  * French translation


.. |Github| image:: https://img.shields.io/github/stars/flozz/calcleaner?label=Github&logo=github
   :target: https://github.com/flozz/calcleaner

.. |Discord| image:: https://img.shields.io/badge/chat-Discord-8c9eff?logo=discord&logoColor=ffffff
   :target: https://discord.gg/P77sWhuSs4

.. |Github Actions| image:: https://github.com/flozz/calcleaner/actions/workflows/python-ci.yml/badge.svg
   :target: https://github.com/flozz/calcleaner/actions

.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://black.readthedocs.io/en/stable/

.. |License| image:: https://img.shields.io/github/license/flozz/calcleaner
   :target: https://github.com/flozz/calcleaner/blob/master/COPYING

            

Raw data

            {
    "_id": null,
    "home_page": "https://calcleaner.flozz.org/",
    "name": "calcleaner",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "calendar caldav event cleaner purge prune",
    "author": "Fabien LOISON",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/19/ef/3b1e11ccf528ade9dee2f9b2798f2b90deaefe8f99640c724d6943511b18/calcleaner-1.1.3.tar.gz",
    "platform": null,
    "description": "CalCleaner\n==========\n\n|Github| |Discord| |Github Actions| |Black| |License|\n\n    A simple graphical tool to purge old events from CalDAV calendars\n\n.. figure:: ./screenshot.png\n   :alt: Screenshot of Calcleaner\n\n\nRequirements\n------------\n\nPython:\n\n* `PyGObject <https://pygobject.readthedocs.io/en/latest/>`_\n* `caldav <https://github.com/python-caldav/caldav>`_\n\n\nInstall\n-------\n\nFlatpak (Linux)\n~~~~~~~~~~~~~~~\n\nA Flatpak package is available on Flathub. This is currently the simplest way\nto install CalCleaner on all major Linux distributions:\n\n* https://flathub.org/apps/details/org.flozz.calcleaner\n\n\nLinux (source)\n~~~~~~~~~~~~~~\n\nFirst, you will need to install some dependencies on your system. On Debian and\nUbuntu this can be achieved with the following command::\n\n    sudo apt install git build-essential python3 python3-dev python3-pip libgirepository1.0-dev pkg-config gir1.2-gtk-3.0\n\nThen clone this repository and navigate to it::\n\n    git clone https://github.com/flozz/calcleaner.git\n    cd calcleaner\n\nThen install CalCleaner using pip::\n\n    sudo pip3 install .\n\nFinally, you can install desktop file, icons and manual using the following\ncommand::\n\n    sudo ./linuxpkg/copy-data.sh /usr\n\n\nLinux (PyPI)\n~~~~~~~~~~~~\n\nFirst, you will need to install some dependencies on your system. On Debian and\nUbuntu this can be achieved with the following command::\n\n    sudo apt install git build-essential python3 python3-dev python3-pip libgirepository1.0-dev pkg-config gir1.2-gtk-3.0\n\nThen install CalCleaner using pip::\n\n    sudo pip3 install calcleaner\n\n**NOTE:** Installing from PyPI will not install ``.desktop`` file and man page.\nYou will not be able to run the software from your graphical app menu (GNOME\nShell,...).\n\n\nContributing / Hacking\n----------------------\n\nQuestions\n~~~~~~~~~\n\nIf you have any question, you can:\n\n* `open an issue <https://github.com/flozz/calcleaner/issues>`_ on Github,\n* or `ask on Discord <https://discord.gg/P77sWhuSs4>`_ (I am not always\n  available for chatting but I try to answer to everyone).\n\n\nBugs\n~~~~\n\nIf you found a bug, please `open an issue\n<https://github.com/flozz/calcleaner/issues>`_ on Github with as much\ninformation as possible:\n\n* What is your operating system / Linux distribution (and its version),\n* How you installed the software,\n* All the logs and message outputted by the software,\n* ...\n\n\nPull Requests\n~~~~~~~~~~~~~\n\nPlease consider `filing a bug <https://github.com/flozz/calcleaner/issues>`_\nbefore starting to work on a new feature. This will allow us to discuss the\nbest way to do it. This is of course not necessary if you just want to fix some\ntypo or small errors in the code.\n\nPlease note that your code must pass tests and follow the coding style defined\nby the `pep8 <https://pep8.org/>`_. `Flake8\n<https://flake8.pycqa.org/en/latest/>`_ and `Black\n<https://black.readthedocs.io/en/stable/>`_ are used on this project to enforce\ncoding style.\n\n\nTranslating Calcleaner\n~~~~~~~~~~~~~~~~~~~~~~\n\nIf the software is not available in your language, you can help translate it.\n\nTo translate Calcleaner, you can submit your translations using a Pull Request\non Github,\n\nDo not forget to add your name as the translation of the ``translator-credits``\nkey (one name per line, e-mail is optional)::\n\n    msgid \"translator-credits\"\n    msgstr \"\"\n    \"John DOE\\n\"\n    \"Other TRANSLATOR <foobar@example.org>\\n\"\n\n\nRunning the project\n~~~~~~~~~~~~~~~~~~~\n\nFirst, install dependencies (preferably in a virtualenv)::\n\n    pip install -e \".[dev]\"\n\nThen run::\n\n    python -m calcleaner\n\n\nCoding Style / Lint\n~~~~~~~~~~~~~~~~~~~\n\nThis project follows `Black's <https://black.readthedocs.io/en/stable/>`_ coding style.\n\nTo check coding style, you will first have to install `nox <https://nox.thea.codes/>`_::\n\n    pip3 install nox\n\nThen you can check for lint error (Flake8 and Black)::\n\n    nox --session lint\n\nYou can fix automatically coding style with::\n\n    nox -s black_fix\n\n\nTests\n~~~~~\n\nTu run tests, you will first have to install `nox <https://nox.thea.codes/>`_::\n\n    pip3 install nox\n\nThen run the following command::\n\n    nox -s test\n\n\nExtract, Update or Build Translations\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou will first have to install `nox <https://nox.thea.codes/>`_::\n\n    pip3 install nox\n\nTo extract messages and update locales run::\n\n    nox --session locales_update\n\nTo compile locales, run::\n\n    nox --session locales_compile\n\n**NOTE:** you will need to have ``xgettext``, ``msgmerge`` and ``msgfmt``\nexecutable installed on your system to run the above commands. On Debian\u00a0/\nUbuntu, they can be installed with the following command::\n\n    sudo apt install gettext\n\n\nRegenerating Icons\n~~~~~~~~~~~~~~~~~~\n\nTo regenerate icons, Inkscape must be installed. On Debian and Ubuntu you can\ninstall it with the following command::\n\n    sudo apt install inkscape\n\nYou will also need `nox <https://nox.thea.codes/>`_ to run the generation\ncommand::\n\n    pip3 install nox\n\nOnce everithing installed, you can regenerate icons with the following command::\n\n    nox -s gen_icons\n\n\nSupporting this project\n-----------------------\n\nWanna support this project?\n\n* `\u2615\ufe0f Buy me a coffee <https://www.buymeacoffee.com/flozz>`__,\n* `\u2764\ufe0f sponsor me on Github <https://github.com/sponsors/flozz>`__,\n* `\ud83d\udcb5\ufe0f or give me a tip on PayPal <https://www.paypal.me/0xflozz>`__.\n\n\nChangelog\n---------\n\n* **[NEXT]** (changes on ``master`` but not released yet):\n\n  * Nothing yet ;)\n\n* **v1.1.3:**\n\n  * Added Turkish translation (@sabriunal, #8)\n\n* **v1.1.2:**\n\n  * Added Croatian translation (@milotype, #7)\n  * Added Python 3.11 support\n\n* **v1.1.1:**\n\n  * Added German translation (J\u00fcrgen Benvenuti)\n\n* **v1.1.0:**\n\n  * UI improvements:\n\n    * Double border removed in calendar view\n    * Accessibility improved by changing the widgets used to build the \"pages\"\n      of the main window\n\n  * Translations:\n\n    * Dutch (#5, @Vistaus)\n    * Brazilian Portuguese (incomplete)\n\n* **v1.0.0:**\n\n  * Allow to disable SSL certificate validation (self-signed certificate, etc.)\n  * Improve error message on SSL errors\n  * Set the user agent string to \"CalCleaner/<VERSION>\"\n  * Fix calendar of removed account still displayed after closing account\n    management dialog\n  * Fix a crash when cleaning an empty (malformed) event\n  * Italian translation (#1, @albanobattistella)\n\n* **v0.9.1 (beta):**\n\n  * Fix data not included in packages\n\n* **v0.9.0 (beta):**\n\n  * Initial release\n  * French translation\n\n\n.. |Github| image:: https://img.shields.io/github/stars/flozz/calcleaner?label=Github&logo=github\n   :target: https://github.com/flozz/calcleaner\n\n.. |Discord| image:: https://img.shields.io/badge/chat-Discord-8c9eff?logo=discord&logoColor=ffffff\n   :target: https://discord.gg/P77sWhuSs4\n\n.. |Github Actions| image:: https://github.com/flozz/calcleaner/actions/workflows/python-ci.yml/badge.svg\n   :target: https://github.com/flozz/calcleaner/actions\n\n.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n   :target: https://black.readthedocs.io/en/stable/\n\n.. |License| image:: https://img.shields.io/github/license/flozz/calcleaner\n   :target: https://github.com/flozz/calcleaner/blob/master/COPYING\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "A simple graphical tool to purge old events from CalDAV calendars",
    "version": "1.1.3",
    "project_urls": {
        "Changelog": "https://github.com/flozz/calcleaner#changelog",
        "Chat": "https://discord.gg/P77sWhuSs4",
        "Donate": "https://github.com/flozz/calcleaner#supporting-this-project",
        "Homepage": "https://calcleaner.flozz.org/",
        "Issues": "https://github.com/flozz/calcleaner/issues",
        "Source Code": "https://github.com/flozz/calcleaner"
    },
    "split_keywords": [
        "calendar",
        "caldav",
        "event",
        "cleaner",
        "purge",
        "prune"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c2fec83b03c515d5ae9ea7634425c6a3384af178fed0d735d6b93c73d537ed5f",
                "md5": "168eda72eb0b5e0df4c52e2a4d17a721",
                "sha256": "1cdb599687ee85e5ebb8c89a2abd6ec7947f9249b5904e4b38b9222fc212dbc9"
            },
            "downloads": -1,
            "filename": "calcleaner-1.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "168eda72eb0b5e0df4c52e2a4d17a721",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 62732,
            "upload_time": "2023-05-26T11:36:06",
            "upload_time_iso_8601": "2023-05-26T11:36:06.595526Z",
            "url": "https://files.pythonhosted.org/packages/c2/fe/c83b03c515d5ae9ea7634425c6a3384af178fed0d735d6b93c73d537ed5f/calcleaner-1.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "19ef3b1e11ccf528ade9dee2f9b2798f2b90deaefe8f99640c724d6943511b18",
                "md5": "d50d751661947bbe74896430e15fdd91",
                "sha256": "156673a186f70d7627c4658f9c68f97d001a73c098b1a5a99c23aff89e497109"
            },
            "downloads": -1,
            "filename": "calcleaner-1.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "d50d751661947bbe74896430e15fdd91",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 55016,
            "upload_time": "2023-05-26T11:36:08",
            "upload_time_iso_8601": "2023-05-26T11:36:08.275053Z",
            "url": "https://files.pythonhosted.org/packages/19/ef/3b1e11ccf528ade9dee2f9b2798f2b90deaefe8f99640c724d6943511b18/calcleaner-1.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-26 11:36:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "flozz",
    "github_project": "calcleaner#changelog",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "calcleaner"
}
        
Elapsed time: 0.12328s