├── .editorconfig ├── .gitignore ├── .travis.yml ├── AUTHORS.rst ├── CONTRIBUTING.rst ├── HISTORY.rst ├── LICENSE ├── MANIFEST.in ├── Makefile ├── README.rst ├── ci ├── dockerfile └── run_docker.sh ├── docs ├── Makefile ├── authors.rst ├── build_process.rst ├── conf.py ├── contributing.rst ├── history.rst ├── index.rst ├── installation.rst ├── make.bat ├── modules.rst ├── packaging.rst ├── readme.rst └── usage.rst ├── hamster_gtk ├── __init__.py ├── hamster_gtk.py ├── helpers.py ├── misc │ ├── __init__.py │ ├── dialogs │ │ ├── __init__.py │ │ ├── date_range_select_dialog.py │ │ ├── edit_fact_dialog.py │ │ ├── error_dialog.py │ │ └── hamster_about_dialog.py │ └── widgets │ │ ├── __init__.py │ │ ├── labelled_widgets_grid.py │ │ └── raw_fact_entry.py ├── overview │ ├── __init__.py │ ├── dialogs │ │ ├── __init__.py │ │ ├── export_dialog.py │ │ └── overview_dialog.py │ └── widgets │ │ ├── __init__.py │ │ ├── charts.py │ │ ├── fact_grid.py │ │ └── misc.py ├── preferences │ ├── __init__.py │ ├── preferences_dialog.py │ └── widgets │ │ ├── __init__.py │ │ ├── combo_file_chooser.py │ │ ├── config_widget.py │ │ ├── hamster_combo_box_text.py │ │ ├── hamster_spin_button.py │ │ ├── hamster_switch.py │ │ └── time_entry.py ├── resources │ ├── css │ │ └── hamster-gtk.css │ ├── gtk │ │ └── menus.ui │ └── hamster-gtk.gresource.xml └── tracking │ ├── __init__.py │ └── screens.py ├── misc └── org.projecthamster.hamster-gtk.desktop ├── requirements ├── dev.pip ├── docs.pip └── test.pip ├── setup.cfg ├── setup.py ├── tests ├── __init__.py ├── conftest.py ├── factories.py ├── misc │ ├── __init__.py │ ├── conftest.py │ ├── test_dialogs.py │ └── widgets │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_labelled_widgets_grid.py │ │ ├── test_raw_fact_completion.py │ │ └── test_raw_fact_entry.py ├── overview │ ├── __init__.py │ ├── conftest.py │ ├── test_dialogs.py │ └── test_widgets.py ├── preferences │ ├── __init__.py │ ├── conftest.py │ ├── test_preferences_dialog.py │ └── widgets │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_combo_file_chooser.py │ │ ├── test_config_widget.py │ │ ├── test_hamster_combo_box_text.py │ │ ├── test_hamster_spin_button.py │ │ └── test_time_entry.py ├── test_hamster-gtk.py ├── test_helpers.py ├── test_minimal.py └── tracking │ ├── __init__.py │ ├── conftest.py │ └── test_screens.py └── tox.ini /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/.travis.yml -------------------------------------------------------------------------------- /AUTHORS.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/AUTHORS.rst -------------------------------------------------------------------------------- /CONTRIBUTING.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/CONTRIBUTING.rst -------------------------------------------------------------------------------- /HISTORY.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/HISTORY.rst -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/LICENSE -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/MANIFEST.in -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/Makefile -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/README.rst -------------------------------------------------------------------------------- /ci/dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/ci/dockerfile -------------------------------------------------------------------------------- /ci/run_docker.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/ci/run_docker.sh -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/docs/Makefile -------------------------------------------------------------------------------- /docs/authors.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../AUTHORS.rst 2 | -------------------------------------------------------------------------------- /docs/build_process.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/docs/build_process.rst -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/docs/conf.py -------------------------------------------------------------------------------- /docs/contributing.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../CONTRIBUTING.rst 2 | -------------------------------------------------------------------------------- /docs/history.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../HISTORY.rst 2 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/docs/index.rst -------------------------------------------------------------------------------- /docs/installation.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/docs/installation.rst -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/docs/make.bat -------------------------------------------------------------------------------- /docs/modules.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/docs/modules.rst -------------------------------------------------------------------------------- /docs/packaging.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/docs/packaging.rst -------------------------------------------------------------------------------- /docs/readme.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../README.rst 2 | -------------------------------------------------------------------------------- /docs/usage.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/docs/usage.rst -------------------------------------------------------------------------------- /hamster_gtk/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/__init__.py -------------------------------------------------------------------------------- /hamster_gtk/hamster_gtk.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/hamster_gtk.py -------------------------------------------------------------------------------- /hamster_gtk/helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/helpers.py -------------------------------------------------------------------------------- /hamster_gtk/misc/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/misc/__init__.py -------------------------------------------------------------------------------- /hamster_gtk/misc/dialogs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/misc/dialogs/__init__.py -------------------------------------------------------------------------------- /hamster_gtk/misc/dialogs/date_range_select_dialog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/misc/dialogs/date_range_select_dialog.py -------------------------------------------------------------------------------- /hamster_gtk/misc/dialogs/edit_fact_dialog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/misc/dialogs/edit_fact_dialog.py -------------------------------------------------------------------------------- /hamster_gtk/misc/dialogs/error_dialog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/misc/dialogs/error_dialog.py -------------------------------------------------------------------------------- /hamster_gtk/misc/dialogs/hamster_about_dialog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/misc/dialogs/hamster_about_dialog.py -------------------------------------------------------------------------------- /hamster_gtk/misc/widgets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/misc/widgets/__init__.py -------------------------------------------------------------------------------- /hamster_gtk/misc/widgets/labelled_widgets_grid.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/misc/widgets/labelled_widgets_grid.py -------------------------------------------------------------------------------- /hamster_gtk/misc/widgets/raw_fact_entry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/misc/widgets/raw_fact_entry.py -------------------------------------------------------------------------------- /hamster_gtk/overview/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/overview/__init__.py -------------------------------------------------------------------------------- /hamster_gtk/overview/dialogs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/overview/dialogs/__init__.py -------------------------------------------------------------------------------- /hamster_gtk/overview/dialogs/export_dialog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/overview/dialogs/export_dialog.py -------------------------------------------------------------------------------- /hamster_gtk/overview/dialogs/overview_dialog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/overview/dialogs/overview_dialog.py -------------------------------------------------------------------------------- /hamster_gtk/overview/widgets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/overview/widgets/__init__.py -------------------------------------------------------------------------------- /hamster_gtk/overview/widgets/charts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/overview/widgets/charts.py -------------------------------------------------------------------------------- /hamster_gtk/overview/widgets/fact_grid.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/overview/widgets/fact_grid.py -------------------------------------------------------------------------------- /hamster_gtk/overview/widgets/misc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/overview/widgets/misc.py -------------------------------------------------------------------------------- /hamster_gtk/preferences/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/preferences/__init__.py -------------------------------------------------------------------------------- /hamster_gtk/preferences/preferences_dialog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/preferences/preferences_dialog.py -------------------------------------------------------------------------------- /hamster_gtk/preferences/widgets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/preferences/widgets/__init__.py -------------------------------------------------------------------------------- /hamster_gtk/preferences/widgets/combo_file_chooser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/preferences/widgets/combo_file_chooser.py -------------------------------------------------------------------------------- /hamster_gtk/preferences/widgets/config_widget.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/preferences/widgets/config_widget.py -------------------------------------------------------------------------------- /hamster_gtk/preferences/widgets/hamster_combo_box_text.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/preferences/widgets/hamster_combo_box_text.py -------------------------------------------------------------------------------- /hamster_gtk/preferences/widgets/hamster_spin_button.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/preferences/widgets/hamster_spin_button.py -------------------------------------------------------------------------------- /hamster_gtk/preferences/widgets/hamster_switch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/preferences/widgets/hamster_switch.py -------------------------------------------------------------------------------- /hamster_gtk/preferences/widgets/time_entry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/preferences/widgets/time_entry.py -------------------------------------------------------------------------------- /hamster_gtk/resources/css/hamster-gtk.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/resources/css/hamster-gtk.css -------------------------------------------------------------------------------- /hamster_gtk/resources/gtk/menus.ui: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/resources/gtk/menus.ui -------------------------------------------------------------------------------- /hamster_gtk/resources/hamster-gtk.gresource.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/resources/hamster-gtk.gresource.xml -------------------------------------------------------------------------------- /hamster_gtk/tracking/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/tracking/__init__.py -------------------------------------------------------------------------------- /hamster_gtk/tracking/screens.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/hamster_gtk/tracking/screens.py -------------------------------------------------------------------------------- /misc/org.projecthamster.hamster-gtk.desktop: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/misc/org.projecthamster.hamster-gtk.desktop -------------------------------------------------------------------------------- /requirements/dev.pip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/requirements/dev.pip -------------------------------------------------------------------------------- /requirements/docs.pip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/requirements/docs.pip -------------------------------------------------------------------------------- /requirements/test.pip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/requirements/test.pip -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/setup.cfg -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/setup.py -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/__init__.py -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/factories.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/factories.py -------------------------------------------------------------------------------- /tests/misc/__init__.py: -------------------------------------------------------------------------------- 1 | """Unittests for the misc submodule.""" 2 | -------------------------------------------------------------------------------- /tests/misc/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/misc/conftest.py -------------------------------------------------------------------------------- /tests/misc/test_dialogs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/misc/test_dialogs.py -------------------------------------------------------------------------------- /tests/misc/widgets/__init__.py: -------------------------------------------------------------------------------- 1 | """Unittests for the miscellaneous widgets.""" 2 | -------------------------------------------------------------------------------- /tests/misc/widgets/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/misc/widgets/conftest.py -------------------------------------------------------------------------------- /tests/misc/widgets/test_labelled_widgets_grid.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/misc/widgets/test_labelled_widgets_grid.py -------------------------------------------------------------------------------- /tests/misc/widgets/test_raw_fact_completion.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/misc/widgets/test_raw_fact_completion.py -------------------------------------------------------------------------------- /tests/misc/widgets/test_raw_fact_entry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/misc/widgets/test_raw_fact_entry.py -------------------------------------------------------------------------------- /tests/overview/__init__.py: -------------------------------------------------------------------------------- 1 | """Unittests for the overview submodule.""" 2 | -------------------------------------------------------------------------------- /tests/overview/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/overview/conftest.py -------------------------------------------------------------------------------- /tests/overview/test_dialogs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/overview/test_dialogs.py -------------------------------------------------------------------------------- /tests/overview/test_widgets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/overview/test_widgets.py -------------------------------------------------------------------------------- /tests/preferences/__init__.py: -------------------------------------------------------------------------------- 1 | """Unittests for the preferences submodule.""" 2 | -------------------------------------------------------------------------------- /tests/preferences/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/preferences/conftest.py -------------------------------------------------------------------------------- /tests/preferences/test_preferences_dialog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/preferences/test_preferences_dialog.py -------------------------------------------------------------------------------- /tests/preferences/widgets/__init__.py: -------------------------------------------------------------------------------- 1 | """Unittests for the preferences widgets.""" 2 | -------------------------------------------------------------------------------- /tests/preferences/widgets/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/preferences/widgets/conftest.py -------------------------------------------------------------------------------- /tests/preferences/widgets/test_combo_file_chooser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/preferences/widgets/test_combo_file_chooser.py -------------------------------------------------------------------------------- /tests/preferences/widgets/test_config_widget.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/preferences/widgets/test_config_widget.py -------------------------------------------------------------------------------- /tests/preferences/widgets/test_hamster_combo_box_text.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/preferences/widgets/test_hamster_combo_box_text.py -------------------------------------------------------------------------------- /tests/preferences/widgets/test_hamster_spin_button.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/preferences/widgets/test_hamster_spin_button.py -------------------------------------------------------------------------------- /tests/preferences/widgets/test_time_entry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/preferences/widgets/test_time_entry.py -------------------------------------------------------------------------------- /tests/test_hamster-gtk.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/test_hamster-gtk.py -------------------------------------------------------------------------------- /tests/test_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/test_helpers.py -------------------------------------------------------------------------------- /tests/test_minimal.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/test_minimal.py -------------------------------------------------------------------------------- /tests/tracking/__init__.py: -------------------------------------------------------------------------------- 1 | """Unittests for the tracking submodule.""" 2 | -------------------------------------------------------------------------------- /tests/tracking/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/tracking/conftest.py -------------------------------------------------------------------------------- /tests/tracking/test_screens.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tests/tracking/test_screens.py -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/projecthamster/hamster-gtk/HEAD/tox.ini --------------------------------------------------------------------------------