Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge develop into master #89

Open
wants to merge 261 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
261 commits
Select commit Hold shift + click to select a range
3f5821a
CLN: Add specific function to plot 3 main graphs
bradyzp Sep 21, 2017
3e2191f
Merge branch 'feature/ui-development' of github.com:DynamicGravitySys…
bradyzp Sep 21, 2017
3202496
ENH: Add Eotvos plotting to main flight plots.
bradyzp Sep 21, 2017
b5c6cbf
ENH: Add preview dialog for data import, allow column matching.
bradyzp Sep 21, 2017
3005a87
DOC: Added contribution guidelines and rewrote readme.
Sep 24, 2017
8435d9c
DOC: Added contribution guidelines and rewrote readme.
cbertinato Sep 25, 2017
29beebc
Feature/eotvos (#24)
bradyzp Sep 19, 2017
9e95a3d
ENH: Rewrite of project tree view base model to allow advanced control.
bradyzp Sep 25, 2017
a945681
Merge branch 'feature/import-preview' into feature/ui-development
bradyzp Sep 29, 2017
cca5be4
ENH: Improve plotting functionality in GUI module.
bradyzp Oct 18, 2017
9a6ec54
Survey lines are now added to the Flight object by clicking in the pl…
Oct 22, 2017
550a1db
Fixed line selection so that changed lines are differentiated from ad…
Oct 25, 2017
94aac7b
BUG: Fix invalid parameter passed upon new flight creation
bradyzp Oct 26, 2017
7831611
ENH: Update GUI Tree View to display flight lines.
bradyzp Oct 27, 2017
dfadd35
FIX: Update test_project unittests to fix failure.
bradyzp Oct 27, 2017
300c767
ENH: Flight Line patches are redrawn on project load
bradyzp Oct 30, 2017
73860ff
ENH: Finished implementing right-click context menu line remove funct…
Oct 30, 2017
2c0a911
ENH: GUI additions and enhancements
cbertinato Oct 31, 2017
9fac150
Feature/#36 select lines (#43)
bradyzp Nov 9, 2017
93e0343
ENH: Added label functionality for flight lines
Nov 12, 2017
774908d
Merge pull request #45 from DynamicGravitySystems/feature/line-labels
cbertinato Nov 13, 2017
b507c45
BUG: Fixed several bugs where Annotation attributes were referenced w…
Nov 16, 2017
466dbed
Merge pull request #47 from DynamicGravitySystems/bugfix/patch-labels…
cbertinato Nov 16, 2017
d3f1e7d
Feature/model design (#49)
bradyzp Nov 20, 2017
eadd28c
Feature/#50 tabs (#51)
bradyzp Dec 1, 2017
65acf58
Feature/#48 plotter (#53)
bradyzp Dec 14, 2017
9a66ea3
CLN: Refactored TreeItem code and lookup by UID
bradyzp Dec 22, 2017
eb86490
ENH/CLN: Update various dialogs, fix high-res display.
bradyzp Dec 25, 2017
4de48f7
ENH/CLN: Redesign Advanced Import dialog and behavior.
bradyzp Dec 25, 2017
3338411
ENH/CLN: Enhancements and refactoring on Dialogs
bradyzp Dec 28, 2017
e75cc67
TST/FIX: Fix API and Test errors due to changes in model child lookup.
bradyzp Dec 28, 2017
5128971
ENH: Further enhancements to import dialog.
bradyzp Dec 29, 2017
1e606d8
ENH: Performance enhancement on window resize.
bradyzp Dec 29, 2017
1ee22db
CLN: Code cleanup and minor refactoring.
bradyzp Dec 29, 2017
72f2548
CLN: Reorganized GUI resources.rc
bradyzp Dec 31, 2017
b2089f1
TST/ENH: Improvements to ImportDialog, added tests.
bradyzp Jan 2, 2018
da9dbda
FIX/CLN: Refactored and improved ChannelListModel
bradyzp Jan 2, 2018
7dd20ae
TST/FIX: Added test for gps import dialog.
bradyzp Jan 2, 2018
b73c299
CLN/FIX: Minor fixes, general code cleanup/refactoring.
bradyzp Jan 2, 2018
01e26e1
CLN: Fix imports and general code cleanup.
bradyzp Jan 4, 2018
56ee6cf
FIX/ENH: Rewrite loader class, added tests.
bradyzp Jan 5, 2018
e85b0a7
CLN: Moved plotter.py to gui package.
bradyzp Jan 6, 2018
81364fc
WIP: Cleanup and testing before merge.
bradyzp Jan 15, 2018
385918b
FIX: Enable GUI Emulation for Travis Testing
bradyzp Jan 15, 2018
7a7cdb7
FIX: Fixed dialog tests and resource_rc lookups.
bradyzp Jan 15, 2018
6c04e16
CLN/FIX: Minor tweaks. Added plot2_prototype example.
bradyzp Jan 15, 2018
71b3cf2
EXP: Experimental Multiple Dispatch function
bradyzp Jan 15, 2018
8e90271
Merge branch 'feature/dispatch' into feature/gui-improvements
bradyzp Jan 15, 2018
7b3f281
FIX: Add compiled UI files to repo for testing.
bradyzp Jan 16, 2018
c934b35
Merge branch 'feature/gui-improvements' into develop
bradyzp Jan 16, 2018
bee08c5
ENH: Minor changes to leap_seconds function
cbertinato Jan 12, 2018
7d92bdb
Merge pull request #58 from DynamicGravitySystems/fix-timeutils
cbertinato Jan 26, 2018
7b2435b
ENH: initial transform implementation
cbertinato Jan 26, 2018
73d4745
TST/FIX: Fix broken tests due to QApplication usage.
bradyzp Jan 26, 2018
1c4cacb
Merge pull request #59 from DynamicGravitySystems/feature/graph-trans…
cbertinato Jan 26, 2018
e455ba4
ENH: Added functionality to synchronize signals by cross correlation …
cbertinato Feb 1, 2018
6d4de6f
ENH: Added functionality to align and crop gravity and trajectory fra…
cbertinato Feb 6, 2018
0759577
Cleanup and rework of Channel Selection Feature
bradyzp Jan 25, 2018
93dc197
ENH: Added functionality to Pyqtgraph for transform node
bradyzp Jan 28, 2018
9f255df
ENH: Added functionality to align and crop gravity and trajectory fra…
cbertinato Feb 6, 2018
d0fdf7e
CLN: Cleaned up old comments/debug statements.
bradyzp May 23, 2018
0bfc9da
Merge branch 'feature/pyqtchart-integration' into develop
bradyzp May 27, 2018
d532cbb
Added graph and transform internals
cbertinato Feb 20, 2018
147f46f
Changes to Graph class
cbertinato Feb 21, 2018
575afd7
Added TransformGraph class
cbertinato Feb 28, 2018
4531433
Added tests and converted operations
cbertinato Mar 2, 2018
9c924df
Refactoring in TransformGraph
cbertinato Mar 2, 2018
0b08f3e
Refactored some in eotvos
cbertinato Mar 2, 2018
c53db85
Added tests for TranformGraph subclassing
cbertinato Mar 2, 2018
69e1aff
Added sample period parameter for eotvos
cbertinato Mar 2, 2018
9529b4b
Added test for eotvos and fixed some bugs
cbertinato Mar 3, 2018
1c0a3c4
Added test for free air correction and fixed test for eotvos
cbertinato Mar 3, 2018
6f283ea
Added latitude correction
cbertinato Mar 3, 2018
d66019e
Added test for use of partial in graph
cbertinato Mar 5, 2018
1370c38
Added test for standard graph
cbertinato Mar 5, 2018
83dc249
Added run method to TransformGraph
cbertinato Mar 6, 2018
3ad9183
TODO in interp_nans
cbertinato Mar 6, 2018
c6ca879
Added AirbornePost graph and removed standard gravity graph
cbertinato Mar 6, 2018
75397dd
Change interpolate to use DataFrame method
cbertinato Mar 6, 2018
31d69aa
Removed old flowchart tests
cbertinato Mar 6, 2018
dd3b108
Added name to output series of lp_filter
cbertinato Mar 6, 2018
b19495b
Some efficiency improvements
cbertinato Mar 6, 2018
fa097cd
Added verbosity flag to TransformGraph
cbertinato Mar 6, 2018
3d058a0
Fixed up some docstrings
cbertinato Mar 6, 2018
b3bb00e
Added functionality for syncing gravity with gps acceleration
cbertinato Mar 7, 2018
a3dcdfd
Added option to align_frames for returning right, left, or both
cbertinato Mar 7, 2018
048ae6e
Fixed test to account for interpolation changes
cbertinato Mar 7, 2018
9f74d71
Fix tests
cbertinato Mar 7, 2018
587ab26
Comments and TODOs
cbertinato Mar 9, 2018
929f5b9
Moved some functions out of processing graph
cbertinato Mar 9, 2018
3d88d77
Removed extraneous variables from AirbornePost
cbertinato Mar 9, 2018
612d839
ENH: Added process_script.py to examples directory for batch processi…
May 18, 2018
7d7d692
Removed concatenation from AirbornePost graph
cbertinato Mar 12, 2018
d088b41
Enabled specification of differentiator for eotvos
cbertinato Mar 30, 2018
2b752f3
Temporarily removed time sync from airborne graph
May 22, 2018
71f85a2
Removed comments
Jun 10, 2018
877ca6c
Added second processing example
Jun 10, 2018
dde8816
Updated requirements
Jun 13, 2018
32cc44b
Added back dedup_dict function
Jun 15, 2018
4ba6998
Removed install_proj4.sh
Jun 15, 2018
ac9b860
Changed default values for interp_only and fill
Jun 15, 2018
a37bd64
Swapped assert_almost_equals for pytest.approx
Jun 15, 2018
0cabbde
Minor change in taylor_fir for pylint warning
Jun 15, 2018
f964604
Merge pull request #67 from DynamicGravitySystems/feature/alt-transform
Jun 15, 2018
b398a0c
Basic integration of new Transform Interface.
bradyzp Jun 18, 2018
b3dd942
CLN: Deleted deprecated plotting code.
bradyzp Jun 18, 2018
3798a83
ENH: Add properties to Flight class for data access.
bradyzp Jun 18, 2018
a265327
Rework of HDF5 data management interface.
bradyzp Jun 20, 2018
850121f
Update Transform UI and add functionality.
bradyzp Jun 20, 2018
e155a3a
Refactor ChannelListModel, remove deprecated plot code.
bradyzp Jun 20, 2018
61d5523
Beginning rework of Project class structure.
bradyzp Jun 21, 2018
c756f64
Iterating on new Project Model/Controller design.
bradyzp Jun 22, 2018
4dd94a6
Add functionality to Controllers/View
bradyzp Jun 25, 2018
803f984
Improve JSON serialization/de-serialization in new project models.
bradyzp Jun 25, 2018
902f7cc
Delete old project code and unneeded tests.
bradyzp Jun 26, 2018
e6a4f55
Improvements to core controllers/models
bradyzp Jun 26, 2018
6663760
Paritally Funtional Integration of new Project Models
bradyzp Jun 26, 2018
3981bca
Refactor/Enhancements: Refactor naming and splitting of project contr…
bradyzp Jun 26, 2018
6e7c609
Add improved import dialogs for Flight/Gravimeter/Data
bradyzp Jun 28, 2018
90869c0
Added functionality and various fields to base project models.
bradyzp Jun 28, 2018
e3498b6
Refactoring from project model changes.
bradyzp Jun 28, 2018
63f34fa
Refactoring and functionality improvements to UI Dialogs
bradyzp Jul 2, 2018
900feff
Add properties to base project model classes for access/editing
bradyzp Jul 2, 2018
4fa20f0
Enable reference linking in JSON output
bradyzp Jul 2, 2018
1efdaea
Add dialog tests, updates to dialogs.
bradyzp Jul 3, 2018
db34b2d
Update CI script to run Coverage report
bradyzp Jul 3, 2018
ecbfa17
Add test coverage for Project Controllers/Flight Controller
bradyzp Jul 3, 2018
4fe79d4
Add Appveyor CI build script
bradyzp Jul 3, 2018
533f10f
Update scipy to 1.1.0 (Fix installation on Windows Pltfm)
bradyzp Jul 3, 2018
cbc5aff
Completed Dialog Tests
bradyzp Jul 3, 2018
3d80bdd
Add basic tests for ProjectTreeModel. Renamed and moved Tree Model to…
bradyzp Jul 3, 2018
db285fe
Added Documentation Structure for dgp.core
bradyzp Jul 5, 2018
ca4888c
Update CI Configs. Split requirements.txt files.
bradyzp Jul 5, 2018
5ccdcac
Add Dialog Validation Mixin Class
bradyzp Jul 5, 2018
0aea990
Updates to project models. Added test coverage.
bradyzp Jul 6, 2018
448117b
Refactoring of project and deletion of deprecated UI code.
bradyzp Jul 6, 2018
864107c
GUI Updates, add new widgets and utilities.
bradyzp Jul 6, 2018
ee162d7
Rework DataSets into project replacing individual DataFiles.
bradyzp Jul 13, 2018
c612bfa
Transform functionality added/improved.
bradyzp Jul 13, 2018
831974b
DOC: Update/Add Documentation. Update sphinx conf
bradyzp Jul 14, 2018
12ce73d
Suppress PyTables warnings due to mixed column types (NaN's)
bradyzp Jul 15, 2018
89da3d7
Changes for PR #69
bradyzp Jul 17, 2018
34cc152
Merge branch 'feature/project-structure' into develop
bradyzp Jul 17, 2018
b67cefe
FIX: Fix inconsistent API use between Project/Flight
bradyzp Jul 18, 2018
867b343
TEST/FIX: Testing FlightController Bindings
bradyzp Jul 18, 2018
71ca847
Merge pull request #74 from DynamicGravitySystems/bugfix/project-api
bradyzp Jul 21, 2018
a801898
Update tables and pandas versions
Jul 23, 2018
4682660
Fixed round-off issue in indexes
Jul 23, 2018
680bc87
Reworking signal/slot mechanism for projects
bradyzp Jul 18, 2018
e6d8c5c
Enhance MainWindow signalling
bradyzp Jul 18, 2018
f35ae7a
Merge pull request #75 from DynamicGravitySystems/enh/update_dep
Jul 24, 2018
c9174b0
ENH: Add multiple project support. MainWindow Test Coverage
bradyzp Jul 24, 2018
80ed3e0
CLN: Clean/refactor files in gui/workspaces
bradyzp Jul 24, 2018
f9ae741
FIX: Case sensitive test assertion on POSIX
bradyzp Jul 24, 2018
0a8bb3b
Add check for already opened project.
bradyzp Jul 24, 2018
4800118
ENH: Tab navigation shortcuts.
bradyzp Jul 24, 2018
70d492b
ENH: Add Progress Dialog Handling
bradyzp Jul 24, 2018
0c0c586
Cleanup workspace.py and add experimental QThread utility class.
bradyzp Jul 25, 2018
86e494b
Add functionality to close project in project tree.
bradyzp Jul 26, 2018
6bb4105
Add progress notification when loading data-file.
bradyzp Jul 26, 2018
18d3022
Refactor Tab handling in MainWindow/MainWorkspace
bradyzp Jul 26, 2018
6825e23
Merge branch 'feature/project-signalling' into develop
bradyzp Jul 27, 2018
52119f2
Flatten project structure by making DataSet direct child of Flight
bradyzp Jul 25, 2018
b3e60d6
Refactor DataFile model class
bradyzp Jul 25, 2018
08c92d7
Refactor DataSet, remove unnecesarry linking to parent.
bradyzp Jul 26, 2018
1072248
Enhance project serialization and object Reference API
bradyzp Jul 26, 2018
5b2096f
Update project path handling, Flight clone updates.
bradyzp Jul 26, 2018
1fa4153
Update TransformTab to use new DataSet/Controller API
bradyzp Jul 26, 2018
8ebefd5
Provide interface to base widget for dialogs.
bradyzp Jul 31, 2018
22d07fc
Update parent/child interfaces.
bradyzp Aug 1, 2018
3fb8c84
Refactor controller display properties.
bradyzp Aug 1, 2018
0fb24b6
Add dataframe align functionality to DataSetController
bradyzp Aug 1, 2018
1f422e4
Add project class meta-data to serialization function.
bradyzp Aug 1, 2018
5b01e67
Refactoring and update to Qt build script
bradyzp Aug 1, 2018
04c5b98
Fix path resolution in build_uic script.
bradyzp Aug 1, 2018
8bccfcb
Test cleanup/refactoring.
bradyzp Aug 1, 2018
19be575
Model/Controller refactoring and cleanup
bradyzp Aug 5, 2018
da0a8ee
Add linux 'open in explorer' support.
bradyzp Aug 6, 2018
ad9fa40
Refactor out usage of string values for Data Types.
bradyzp Aug 6, 2018
57e1c58
Improve project serialization API
bradyzp Aug 6, 2018
8e81532
Fix project to_json method to prevent corruption.
bradyzp Aug 6, 2018
cb4759a
Update DataFileController inheritance
bradyzp Aug 6, 2018
fefb67c
Fix coverage badge to point to correct branch.
bradyzp Aug 6, 2018
566527e
Cleanup and minor documentation updates.
bradyzp Aug 6, 2018
0902024
Cleanup - remove dead code/comments
bradyzp Aug 8, 2018
9013c5a
Merge pull request #79 from DynamicGravitySystems/feature/project-data
bradyzp Aug 8, 2018
23ea182
Minor fixes for testing QOL and bad function invocation in trajectory…
bradyzp Aug 8, 2018
148b1b8
Merge pull request #80 from DynamicGravitySystems/feature/fixup
bradyzp Aug 9, 2018
75739c6
Add test-driven re-write of the PyQtGridPlotWidget
bradyzp Jul 17, 2018
3dbf8de
Update PolyAxis date tickStrings function.
bradyzp Jul 17, 2018
fc08f41
ENH: Add second y-axis scale to plots.
bradyzp Jul 21, 2018
90ef6ab
Re-implement LineSelectPlot API on new backend.
bradyzp Jul 23, 2018
ae5d987
ENH: Minimally functional LineSelectPlot with Date axis formatter.
bradyzp Jul 23, 2018
90add9f
Refactor DataSegment to natively use pandas.Timestamp
bradyzp Aug 2, 2018
4c5ba27
Add enumerations to replace string parameter matching.
bradyzp Aug 2, 2018
3118a3f
Convert TransformPlot to new Plot API. Cleanup old plot API.
bradyzp Aug 2, 2018
90448db
Update segment label handling and decouple from parent plot object.
bradyzp Aug 2, 2018
566912d
Transform Workspace improvements.
bradyzp Aug 2, 2018
4ccd20e
Tests: Qt/pytest Error handling improvements
bradyzp Aug 3, 2018
54dc139
Refactor AxisFormatter and LineraFlightRegion
bradyzp Aug 9, 2018
2c235de
Add custom DgpPlotItem with enhanced context menu.
bradyzp Aug 9, 2018
e10f1b2
Refactor GridPlotWidget to use weak refs. Add docstrings.
bradyzp Aug 9, 2018
e7e4537
Add tooltips to plot controls. Fix 'View All' action behavior on mult…
bradyzp Aug 9, 2018
c24ccdd
Move LineUpdate named tuple into plotting/helpers.
bradyzp Aug 13, 2018
f672056
Add LinearSegmentGroup, refactor Line Select Plot logic.
bradyzp Aug 13, 2018
1a5564a
Implement DataSegment reference tracking.
bradyzp Aug 13, 2018
6f97e50
Implement cross-platform application state with QSettings.
bradyzp Aug 7, 2018
b01d5e8
Rename splash.py, enhance project loading function.
bradyzp Aug 8, 2018
855b5a2
Refactor application settings module, add splash screen.
bradyzp Aug 8, 2018
e03b574
Enhance MainWindow loading logic, support for recent projects.
bradyzp Aug 8, 2018
2ab2139
Add public utility methods to backends/plotters
bradyzp Aug 13, 2018
d63f7b9
Update docstrings, finish sphinx plotting documentation page
bradyzp Aug 14, 2018
83de30d
Add integrated toolbar factory method to plots.
bradyzp Aug 15, 2018
6acd186
Add new Icon resources, cleanup old resources.
bradyzp Aug 14, 2018
60c0554
Refactor Icon usage/creation with Enum.icon() method
bradyzp Aug 14, 2018
5b794ec
Merge pull request #81 from DynamicGravitySystems/feature/plot-api
bradyzp Aug 15, 2018
bc115c2
Rewrite channel control widget
bradyzp Aug 16, 2018
7dc2f94
Merge branch 'feature/app-settings' into feature/ui-improvements
bradyzp Aug 16, 2018
d192d8d
Rewrite workspace tab logic
bradyzp Aug 16, 2018
3c56fa3
Add documentation launcher and 'About' dialog.
bradyzp Aug 16, 2018
6961779
Add sensor linkage to data-set controllers.
bradyzp Aug 17, 2018
f3ee074
Implement basic state restoration for segment selection tab.
bradyzp Aug 21, 2018
c0a33a8
Refactor workspace tab bases. Add tab persistent state handling
bradyzp Aug 21, 2018
ca3ae11
Refactor ChannelController, thread loading of dataset tab.
bradyzp Aug 21, 2018
140de7e
Add segment visibility toggle to LineSelectPlot
bradyzp Aug 21, 2018
725cd82
Cleanup: Remove unused code, add docstrings, cleanup imports
bradyzp Aug 24, 2018
c99d18c
Fix error updating binary channel state when plot clear triggered.
bradyzp Aug 24, 2018
8a4e600
Fix splash screen visibility when loading.
bradyzp Aug 26, 2018
8550d7d
Fix attribute error in datafile controller. Fix invalid Path construc…
bradyzp Aug 26, 2018
6d0853e
Fix project dock visibility when main window is minimized/restored.
bradyzp Aug 26, 2018
ab15bd6
Merge pull request #83 from DynamicGravitySystems/feature/ui-improvem…
bradyzp Aug 27, 2018
e65be71
Fixup: Initial Ref-Tracking working feature-set
bradyzp Aug 21, 2018
60ed2ea
Refactor controller interfaces, add reference tracking.
bradyzp Aug 21, 2018
f5eca06
Implement improved observer pattern/registration.
bradyzp Aug 28, 2018
104e64a
Refactor controller, dedupe common constructor calls
bradyzp Aug 28, 2018
f8b3cf4
Update workspace bases and controller tabs.
bradyzp Aug 28, 2018
aff2275
Refactor DataSetController to use standard child interface.
bradyzp Aug 28, 2018
ab44b43
Add documentation, fix breaking tests.
bradyzp Aug 28, 2018
14b6b03
Updated documentation
bradyzp Sep 7, 2018
e7dce41
Refactor controllers, project is now a mandatory parameter.
bradyzp Sep 7, 2018
6682b85
Add tests for controller observer/clone behavior.
bradyzp Sep 7, 2018
103d845
Fix for round-off error issue
Sep 19, 2018
9535111
Change to allow individual tests to be run
Sep 18, 2018
ae89f54
Added unit test for dti round-off issue
Sep 19, 2018
971ff43
Alternative fix
Sep 19, 2018
0599622
Merge pull request #86 from DynamicGravitySystems/bug/gps_time_roundi…
Sep 21, 2018
a5c7f6c
Annotate coverage skip on GUI action methods.
bradyzp Sep 21, 2018
5095694
Rename AbstractController -> VirtualBaseController
bradyzp Sep 21, 2018
d2f87ce
Merge branch 'develop' into feature/reference-tracking
bradyzp Sep 25, 2018
5c0b566
Merge branch 'feature/reference-tracking' into develop
bradyzp Sep 25, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
environment:
matrix:
# - PYTHON: "C:\\Python35-x64"
- PYTHON: "C:\\Python36-x64"

build: false

install:
- cmd: set PATH=%PYTHON%\;%PYTHON%\Scripts;%PATH%
- cmd: echo %PATH%
- cmd: dir %PYTHON%
- python --version
- "python -m pip install -U pip setuptools"
- "python -m pip install Cython==0.28.3"
- "python -m pip install -r requirements.txt"
- "python -m pip install -r test-requirements.txt"

before_test:
- "python utils/build_uic.py dgp/gui/ui"

test_script:
- "pytest --cov=dgp tests"
13 changes: 13 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[run]
branch = True

[report]
omit =
dgp/resources_rc.py
dgp/gui/ui/*.py
dgp/__main__.py

exclude_lines =
pragma: no cover
def __repr__
raise NotImplementedError
22 changes: 20 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,26 @@
# Ignored file extensions
*.idea
*.pdf
*.pyc
*.pyo
*.coverage
*.vsdx
*.hdf5
*.h5

# Ignored directories
__pycache__/
scratch/
*.pdf
venv/
*.coverage
docs/build/
.cache/
.pytest_cache/
build/
dist/

# Specific Directives
examples/local*
tests/sample_data/eotvos_long_result.csv
tests/sample_data/eotvos_long_input.txt
dgp/gui/ui/*.py
dgp/resources_rc.py
22 changes: 18 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
language: python
cache: pip
python:
- "3.5"
- "3.6"
before_install:
- sudo apt-get install -y libgeos-dev
- sudo apt-get install -y proj-bin
install:
- pip install Cython==0.28.3
- pip install -r requirements.txt
- pip install coverage
- pip install -r test-requirements.txt
before_script:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
- sleep 3
- python utils/build_uic.py
script:
coverage run --source=dgp -m unittest discover
pytest --capture=no --cov=dgp tests
after_success:
- coveralls
notifications:
slack: polargeophysicsgroup:FO0QAgTctTetembHbEJq8hxP
slack:
rooms:
- polargeophysicsgroup:FO0QAgTctTetembHbEJq8hxP
on_success: change
74 changes: 61 additions & 13 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,65 @@ DGP (Dynamic Gravity Processor)
.. image:: https://travis-ci.org/DynamicGravitySystems/DGP.svg?branch=master
:target: https://travis-ci.org/DynamicGravitySystems/DGP

.. image:: https://ci.appveyor.com/api/projects/status/np3s77n1s8hpvn5u?svg=true
:target: https://ci.appveyor.com/project/bradyzp/dgp

.. image:: https://coveralls.io/repos/github/DynamicGravitySystems/DGP/badge.svg?branch=feature%2Fproject-structure
:target: https://coveralls.io/github/DynamicGravitySystems/DGP?branch=develop

.. image:: https://readthedocs.org/projects/dgp/badge/?version=develop
:target: https://dgp.readthedocs.io/en/develop
:alt: Documentation Status

What is it
----------
**DGP** is an library as well an application for processing gravity data collected
with dynamic gravity systems, such as those run on ships and aircraft.

The library can be used to automate the processing workflow and experiment with
new techniques. The application was written to fulfill the needs of of gravity
processing in production environment.

The project aims to bring all gravity data processing under a single umbrella by:

- accommodating various sensor types, data formats, and processing techniques
- providing a flexible framework to allow for experimentation with the workflow
- providing a robust and efficient system for production-level processing

Dependencies
------------
- numpy >= 1.13.1
- pandas >= 0.20.3
- scipy >= 0.19.1
- matplotlib >= 2.0.2
- PyQt5 >= 5.9
- PyTables_ >= 3.0.0

.. _PyTables: http://www.pytables.org

License
-------
`Apache License, Version 2.0`_

.. _`Apache License, Version 2.0`: https://www.apache.org/licenses/LICENSE-2.0

Documentation
-------------
The Sphinx documentation included in the repository and hosted on readthedocs_
should provide a good starting point for learning how to use the library.

.. _readthedocs: http://dgp.readthedocs.io/en/latest/

Documentation on how to use the application to follow.

Contributing to DGP
-------------------
Package Structure
-------------------
1. dgp
1. lib
1. gravity_ingestor.py - Functions for importing Gravity data
2. trajectory_ingestor.py - Functions for importing GPS (Trajectory) data
2. ui
- Contains all Qt Designer UI files and resources
3. main.pyw - Primary GUI classes and code
4. loader.py - GUI Threading code
5. resources_rc.py - Compiled PyQt resources file
2. docs
3. tests
All contributions in the form of bug reports, bug fixes, documentation
improvements, enhancements, and ideas are welcome.

If you would like to contribute in any of these ways, then you can start at
the `GitHub "issues" tab`_. A detailed guide on how to contribute can be found
here_.

.. _`GitHub "issues" tab`: https://github.com/DynamicGravitySystems/DGP/issues
.. _here: http://dgp.readthedocs.io/en/latest/contributing.html
13 changes: 13 additions & 0 deletions dgp/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
__version__ = "0.1.0"

__about__ = f"""
DGP version {__version__}

DGP (Dynamic Gravity Processor) is an open source project licensed under the Apache v2 license.

The source for DGP is available at https://github.com/DynamicGravitySystems/DGP

DGP is written in Python, utilizing the Qt framework with the PyQt5 Python bindings.

"""
51 changes: 39 additions & 12 deletions dgp/__main__.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,45 @@
# coding: utf-8

import os
# -*- coding: utf-8 -*-
import sys
import time
import traceback

sys.path.append(os.path.dirname(__file__))

# from dgp import resources_rc
from dgp import resources_rc
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
from PyQt5 import QtCore
from PyQt5.QtWidgets import QApplication, QSplashScreen
from dgp.gui.splash import SplashScreen

"""Program Main Entry Point - Loads SplashScreen GUI"""
if __name__ == "__main__":
print("CWD: {}".format(os.getcwd()))
from dgp.gui.main import MainWindow

app = None


def excepthook(type_, value, traceback_):
"""This allows IDE to properly display unhandled exceptions which are
otherwise silently ignored as the application is terminated.
Override default excepthook with
>>> sys.excepthook = excepthook

See: http://pyqt.sourceforge.net/Docs/PyQt5/incompatibilities.html
"""
traceback.print_exception(type_, value, traceback_)
QtCore.qFatal('')


def main():
_align = Qt.AlignBottom | Qt.AlignHCenter
global app
sys.excepthook = excepthook
app = QApplication(sys.argv)
form = SplashScreen()
splash = QSplashScreen(QPixmap(":/icons/dgp_large"))
splash.showMessage("Loading Dynamic Gravity Processor", _align)
splash.show()
time.sleep(.5)
window = MainWindow()
splash.finish(window)
window.sigStatusMessage.connect(lambda msg: splash.showMessage(msg, _align))
window.load()
sys.exit(app.exec_())


if __name__ == "__main__":
main()
6 changes: 6 additions & 0 deletions dgp/core/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# -*- coding: utf-8 -*-
from .oid import OID
from .types.reference import Reference
from .types.enumerations import DataType, StateAction, Icon

__all__ = ['OID', 'Reference', 'DataType', 'StateAction', 'Icon']
1 change: 1 addition & 0 deletions dgp/core/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# -*- coding: utf-8 -*-
89 changes: 89 additions & 0 deletions dgp/core/controllers/controller_helpers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# -*- coding: utf-8 -*-
import shlex
import sys
from pathlib import Path
from typing import Optional, Union

from PyQt5.QtCore import QObject, QProcess
from PyQt5.QtWidgets import QWidget, QMessageBox, QInputDialog

__all__ = ['confirm_action', 'get_input', 'show_in_explorer']


def confirm_action(title: str, message: str,
parent: Optional[Union[QWidget, QObject]]=None): # pragma: no cover
"""
Prompt the user for a yes/no confirmation, useful when performing
destructive actions e.g. deleting a project member.

Parameters
----------
title : str
message : str
parent : QWidget, optional
The parent widget for this dialog, if not specified the dialog
may not be destroyed when the main UI application quits.

Returns
-------
bool
True if user confirms the dialog (selects 'Yes')
False if the user cancels or otherwise aborts the dialog

"""
dlg = QMessageBox(QMessageBox.Question, title, message,
QMessageBox.Yes | QMessageBox.No, parent=parent)
dlg.setDefaultButton(QMessageBox.No)
dlg.exec_()
return dlg.result() == QMessageBox.Yes


def get_input(title: str, label: str, text: str = "", parent: QWidget=None): # pragma: no cover
"""
Get text input from the user using a simple Qt Dialog Box

Parameters
----------
title : str
label : str
text : str, optional
Existing string to display in the input dialog

parent : QWidget, optional
The parent widget for this dialog, if not specified the dialog
may not be destroyed when the main UI application quits.

Returns
-------

"""
new_text, result = QInputDialog.getText(parent, title, label, text=text)
if result:
return new_text
return False


def show_in_explorer(path: Path): # pragma: no cover
"""Reveal the specified path in the OS's explorer/file-browser/finder

Parameters
----------
path : :class:`pathlib.Path`

"""
dest = path.absolute().resolve()
if sys.platform == 'darwin':
target = 'oascript'
args = f'-e tell application "Finder" -e activate -e select POSIX file ' \
f'"{dest!s}" -e end tell'
elif sys.platform == 'win32':
target = 'explorer'
args = shlex.quote(f'{dest!s}')
elif sys.platform == 'linux':
target = 'xdg-open'
args = shlex.quote(f'{dest!s}')
else:
return

QProcess.startDetached(target, shlex.split(args))

Loading