Shaun Ruffell
16d2c13f55
CmdTag: Do not load entire database
...
Related to issue #245
2020-01-17 17:48:57 +01:00
Shaun Ruffell
2c1a4a146d
CmdContinue: Do not load entire database
...
This change eliminates the call to getTracked with an empty filter,
which causes the entire database to be parsed.
Related to issue #245
2020-01-17 17:48:57 +01:00
Shaun Ruffell
59ee7e47d4
Database: add assert in addInterval if start is greater than end
2020-01-17 17:48:57 +01:00
Shaun Ruffell
894f8ba5d8
Database: Add method empty
2020-01-17 17:48:57 +01:00
Shaun Ruffell
2df76a2ef0
Add helpers flattenDatabase and getIntervalsByIds
...
getIntervalsByIds will be used by commands that are loading complete database
currently when they really want a few intervals that the user specified by ID.
Related to issue #245
2020-01-17 17:48:57 +01:00
Shaun Ruffell
610e78fede
Remove getAllInclusions helper function
...
All locations in the code that was creating Intervals for all entries in
the database have been removed. This function can now be removed as
well.
2020-01-17 17:48:57 +01:00
Shaun Ruffell
91e4da7a4c
getUntracked helper function should not call getAllInclusions
...
The getUntracked, called as part of the `timew gaps` command, is
normally looking at a relatively recent interval. We do not want to take
the performance hit of loading the entire database into memory when
processing this command.
Related to issue #245
2020-01-17 17:48:57 +01:00
Shaun Ruffell
b06b8cf8ae
Database: add tags method for getting set of tag names
...
The database class now separatly tracks tag information. So for the one
place where all the inclusions were iterated over in order to build up a
tag set, we now instead ask the database for this set directly.
Related to issue #245
2020-01-17 17:48:57 +01:00
Shaun Ruffell
5dcf226d20
Database: Switch the natural order from newest inclusion to oldest
...
The inclusion database for the user always starts with the most recent
entry. It is now the same way in the code as well.
2020-01-17 17:48:57 +01:00
Shaun Ruffell
623db0c8e4
Database: Remove Database::allLines()
...
The Database class itself can now be used in range-based for loops for iterating
over all the lines.
2020-01-17 17:48:57 +01:00
Shaun Ruffell
bd1f7aef99
Remove unused outerRange
...
outerRange is no longer used, since the filter was simply started based on the
first line in the database now.
2020-01-17 17:48:57 +01:00
Shaun Ruffell
3ec09f9be1
getOverlaps should use non-empty range filter
...
We can eliminate the need to parse the entire database if we only look for
overlaps based on the latest interval.
Related to issue #245 .
2020-01-17 17:48:57 +01:00
Shaun Ruffell
9c0c27b55b
getLatestInterval does not need to walk all the inclusions
...
This does not appear to be necessary anymore given that the database lines are
generated from intervals and are all well formed. Any open interval *should* be
at the end of the database.
Related to issue #245 .
2020-01-17 17:48:57 +01:00
Shaun Ruffell
86bb1465e8
getTracked does not need to read in entire database
...
Related to issue #245 .
2020-01-17 17:48:57 +01:00
Shaun Ruffell
e9f860d8ce
Remove call to getAllInclusions when initializing tag database
2020-01-17 17:48:57 +01:00
Shaun Ruffell
cf8c35ad55
intervalSummarize should not load the entire database
...
intervalSummarize is called at the end of most commands. The cost of parsing
all the lines in the database can be significant as the size of the database
grows.
Related to issue #245 .
2020-01-17 17:48:57 +01:00
Shaun Ruffell
6af1101ea2
Database: Use reverse iterator in lastLine
...
Now that we have the iterators, we can standardize on their use.
Related to issue #245 .
2020-01-17 17:48:57 +01:00
Shaun Ruffell
557fd4cb34
Database: Add forward/reverse iterator
...
This allows the database to be treated as a single collection of strings, but
can be used to avoid loading the entire database when only interested in recent
entries.
Related to issue #245 .
2020-01-17 17:48:57 +01:00
Shaun Ruffell
ea3bbd0e85
Datafile: allLines() can return const reference instead of copy.
...
Not only does this eliminate the need to copy the stings to the caller, it will
also eliminate the need for any iterators over the entries in the Database from
having to hold a copy of the lines from the Datafile.
Related to #245 .
2020-01-17 17:48:57 +01:00
Shaun Ruffell
ff56bc4759
test/simpletap: Look for functions that start with "test_" on exceptions
...
Since the switch to python3, there is another method that starts with "test"
higher up in the stack which produces unhelpful file / line information on a
failed test like:
ERROR: CommandError on file /usr/lib/python3.6/unittest/case.py line 59 in testPartExecutor: 'yield':
This change restores the previous behavior from before the switch to python 3.
2020-01-17 17:48:57 +01:00
Shaun Ruffell
0e354da1c7
test: Use faketime instead of date -v
for relative dates
...
Ubuntu 18.04.3 does not have the -v option to the date utility.
2020-01-17 17:48:57 +01:00
Thomas Lauf
5e385b84a1
Switch to python 3
...
- #259
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 19:01:26 +01:00
Thomas Lauf
3f3c4c3108
Switch to python 3
...
- #259
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 18:52:19 +01:00
Thomas Lauf
dc77a8c457
Use new style formatting
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 18:39:18 +01:00
Thomas Lauf
d746b422bf
Accommodate PEP8
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 18:31:20 +01:00
Thomas Lauf
6c601cfeb8
Switch to python 3
...
- #259
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 18:30:28 +01:00
Thomas Lauf
4f657e57d9
Switch to python 3
...
- #259
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 15:30:17 +01:00
Thomas Lauf
7997c99106
Update README
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 15:12:33 +01:00
Thomas Lauf
42df2cb08b
Update copyright years and holders
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 15:12:33 +01:00
Thomas Lauf
002a04db63
Merge same holidays from different regions
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 15:12:33 +01:00
Thomas Lauf
ff562b8a9e
Simplify region filtering by setting a default value
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 15:12:33 +01:00
Thomas Lauf
bb905fd0b9
Inline variable
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 13:21:08 +01:00
Thomas Lauf
38a5afe88c
Remove redundant character escape in regex
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 13:20:05 +01:00
Thomas Lauf
452cce6137
Switch to python 3
...
- #259
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-28 13:18:08 +01:00
Thomas Lauf
ddf713a722
Switch to python 3
...
- #259
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-27 19:08:57 +01:00
Thomas Lauf
f7a3e26d8e
Move section 7 files to directory man7
...
- Amends #262
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-27 17:22:00 +01:00
Thomas Lauf
3e979a7d05
Update ChangeLog
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-27 16:11:16 +01:00
Thomas Lauf
03ffa70203
Add curly brackets
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-27 16:10:46 +01:00
Thomas Lauf
30740af3ba
Resharpen error message for if command stop
gets called with ids
...
- Amends #270
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-27 16:10:46 +01:00
Thomas Lauf
13a8edc7ef
Resharpen test stop with id should suggest modify command
...
- Amends #270
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-27 16:10:28 +01:00
Shaun Ruffell
145af6603c
Stop with id should suggest modify command
...
Recently I was trying to stop an interval that I had left open over the
weekend, but I had already started a new interval at the beginning of the
week. The error I was received was "The end of a date range must be after the
start." which was confusing to me.
After a few moments I realized I should have been using the modify command.
Now the stop command will suggest modify if someone attempts to use stop for
this purpose.
2019-12-27 15:47:39 +01:00
Thomas Lauf
80fe5e4221
Use pyenv to run tests with python3
...
- #259
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-22 13:09:19 +01:00
Thomas Lauf
eccf82ff56
Print version information at end
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-21 22:55:02 +01:00
Thomas Lauf
6ecdbc5cf7
Remove unneeded packages
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-21 22:53:59 +01:00
Thomas Lauf
c6fb6c4e3a
Fix installation of python3-dateutil
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-21 22:53:10 +01:00
Thomas Lauf
6637452a1f
Cleanup Dockerfiles
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-21 22:32:56 +01:00
Thomas Lauf
5c1e037abc
Persist activation of scl package
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-21 22:32:55 +01:00
Thomas Lauf
8189652bbc
Print version information at end
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-21 22:32:46 +01:00
Thomas Lauf
800062ace2
Consolidate package list
...
- Remove unnecessary packages
- Sort packages alphabetically
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-21 22:32:36 +01:00
Thomas Lauf
660816ae5f
Put packages on separate lines for better readability
...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-21 22:32:25 +01:00