<commit_before>pmcalendar
==========

Cross-platform desktop calendar applet that supports multiple database backends.


Features
--------

* Runs on Linux, Mac, and Windows
* Desktop GUI calendar with month, week, and day views (week and day: TODO).
* Corresponding PDF reports with month, week, and day views (TODO).
* Very simple to use.
* User can enter static and diary entries for each day.
* Multiple database backends supported (MySQL, SQLite, PostgreSQL) (Not tested on PostgreSQL yet; other backends should work, too)
* Can be used as a stand-alone application, or as a library to be imported and used in your larger application.


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

* Python 2.6.5 or higher
* wxPython 2.8.12.1 or higher
* Dabo 0.9.4 or higher
* Reportlab 2.1 or higher (if running PDF reports)
* PIL (if running PDF reports)


Screenshots
-----------
* <a href="https://raw.github.com/pmcnett/pmcalendar/master/screenshots/screenshot_mac.png">Mac</a>
* <a href="https://raw.github.com/pmcnett/pmcalendar/master/screenshots/screenshot_windows.png">Windows</a>
* <a href="https://raw.github.com/pmcnett/pmcalendar/master/screenshots/screenshot_linux.png">Linux</a>


See it in action
----------------

After installing and confirming the above prerequisites were installed:

    cd pmcalendar
    python ui.py

This will run it with an in-memory database automatically created for you.


Use it in your application
--------------------------

Put it in your PYTHONPATH. I have the pmcalendar package under /home/pmcnett/pmcalendar and so I add a .pth file to my `/usr/local/lib/python2.6/dist-packages` directory that says `/home/pmcnett/pmcalendar`.

Then use the create_tables.sql to add the required tables to your database, and add code to your application like:

```python
from pmcalendar.ui import FrmCalendar
app = self.Application  ## (in a Dabo app where self is any dObject)
con = app.dbConnection  ## (whatever dConnection your app uses)
frmCalendar = FrmCalendar(self, Connection=con)
frmCalendar.show()
```<commit_msg>Added note on keyboard navigation.<commit_after>pmcalendar
==========

Cross-platform desktop calendar applet that supports multiple database backends.


Features
--------

* Runs on Linux, Mac, and Windows
* Desktop GUI calendar with month, week, and day views (week and day: TODO).
* Corresponding PDF reports with month, week, and day views (TODO).
* Very simple to use.
* User can enter static and diary entries for each day.
* Multiple database backends supported (MySQL, SQLite, PostgreSQL) (Not tested on PostgreSQL yet; other backends should work, too)
* Can be used as a stand-alone application, or as a library to be imported and used in your larger application.


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

* Python 2.6.5 or higher
* wxPython 2.8.12.1 or higher
* Dabo 0.9.4 or higher
* Reportlab 2.1 or higher (if running PDF reports)
* PIL (if running PDF reports)


Screenshots
-----------
* <a href="https://raw.github.com/pmcnett/pmcalendar/master/screenshots/screenshot_mac.png">Mac</a>
* <a href="https://raw.github.com/pmcnett/pmcalendar/master/screenshots/screenshot_windows.png">Windows</a>
* <a href="https://raw.github.com/pmcnett/pmcalendar/master/screenshots/screenshot_linux.png">Linux</a>


Run the demo
------------

After installing and confirming the above prerequisites were installed:

    cd pmcalendar
    python ui.py

This will run it with an in-memory database automatically created for you.


Keyboard Navigation
-------------------

When a day number has the focus, type:

* t: go to today
* -: go to yesterday
* +: go to tomorrow
* [: go to this day last month
* ]: go to this day next month

The arrow keys move you around in the currently displayed calendar, wrapping around the edges. Holding <ctrl> down while navigating with the arrow keys will do the following:

* <ctrl><up-or-down>: go to prior or next year, leaving cursor on the same calendar position.
* <ctrl><left-or-right>: go to prior or next month, leaving cursor on the same calendar position.


Use it in your application
--------------------------

Put it in your PYTHONPATH. I have the pmcalendar package under /home/pmcnett/pmcalendar and so I add a .pth file to my `/usr/local/lib/python2.6/dist-packages` directory that says `/home/pmcnett/pmcalendar`.

Then use the create_tables.sql to add the required tables to your database, and add code to your application like:

```python
from pmcalendar.ui import FrmCalendar
app = self.Application  ## (in a Dabo app where self is any dObject)
con = app.dbConnection  ## (whatever dConnection your app uses)
frmCalendar = FrmCalendar(self, Connection=con)
frmCalendar.show()
```
{'fraction_non_alphanumeric': 0.12061922167275854, 'fraction_numerical': 0.006450225757901527, 'mean_word_length': 3.6706827309236947, 'pattern_counts': {'":': 0, '<': 20, '<?xml version=': 0, '>': 20, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2288565', 'n_tokens_mistral': 1391, 'n_tokens_neox': 1322, 'n_words': 551}