39 lines
1.4 KiB
Markdown
39 lines
1.4 KiB
Markdown
# Parse timelogs for upload
|
|
|
|
A script for converting basic timelogs to the formats for timetracking import.
|
|
|
|
Initially for [Pomodoro Prompt](https://gitlab.com/agaric/python/pomodoroprompt) to Harvest and [Business Tracker](https://gitlab.com/novawebdevelopment/business-tracker)
|
|
|
|
Pmodoro Prompt is extremely simplistic, and only has a description field and automatically saves the date. The time unit for each entry is half an hour.
|
|
|
|
To import into a timetracking system of any sophistication, we need to parse our description and
|
|
|
|
Harvest allows CSV import, with the fields:
|
|
|
|
date,project,description
|
|
|
|
If project doesn't exist it will create a new project.
|
|
|
|
# Learning from this script and continuing development
|
|
|
|
Rather than having to type out all 40 plus lines of data processing, you can also run the whole script in the interactive shell and play with it:
|
|
|
|
After typing `python3` to get the interactive Python shell in this directory, you can do this line:
|
|
|
|
```python
|
|
exec(open('pomodoro_to_harvest.py').read())
|
|
```
|
|
|
|
And now you can interact with the resulting timelog DataFrame:
|
|
|
|
```python
|
|
timelog.query("time>30").loc[:100,["description","time","orig_desc"]].tail(50)
|
|
```
|
|
|
|
Or the slightly more processed tl DataFrame, for example to get the hours worked per project:
|
|
|
|
```python
|
|
tl.groupby("project").agg({"time": "sum"})["time"]/60
|
|
```
|
|
|
|
And yeah you can just sort of tack on the column you want to mess with and do an operation like that!
|