apsg 1.3.0__tar.gz → 1.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. apsg-1.3.2/LICENSE +22 -0
  2. apsg-1.3.2/PKG-INFO +188 -0
  3. {apsg-1.3.0 → apsg-1.3.2}/README.md +45 -39
  4. apsg-1.3.2/pyproject.toml +68 -0
  5. apsg-1.3.2/setup.cfg +4 -0
  6. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/__init__.py +1 -2
  7. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/database/_alchemy.py +92 -52
  8. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/plotting/_stereogrid.py +4 -6
  9. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/plotting/_stereonet.py +2 -4
  10. apsg-1.3.2/src/apsg.egg-info/PKG-INFO +188 -0
  11. apsg-1.3.2/src/apsg.egg-info/SOURCES.txt +43 -0
  12. apsg-1.3.2/src/apsg.egg-info/dependency_links.txt +1 -0
  13. apsg-1.3.2/src/apsg.egg-info/entry_points.txt +2 -0
  14. apsg-1.3.2/src/apsg.egg-info/requires.txt +30 -0
  15. apsg-1.3.2/src/apsg.egg-info/top_level.txt +1 -0
  16. apsg-1.3.2/tests/test_apsg.py +623 -0
  17. apsg-1.3.2/tests/test_tensors.py +104 -0
  18. apsg-1.3.0/AUTHORS.md +0 -9
  19. apsg-1.3.0/CHANGELOG.md +0 -304
  20. apsg-1.3.0/CONTRIBUTING.md +0 -91
  21. apsg-1.3.0/PKG-INFO +0 -141
  22. apsg-1.3.0/pyproject.toml +0 -67
  23. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/config.py +0 -0
  24. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/database/__init__.py +0 -0
  25. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/database/_sdbread.py +0 -0
  26. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/decorator/__init__.py +0 -0
  27. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/decorator/_decorator.py +0 -0
  28. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/feature/__init__.py +0 -0
  29. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/feature/_container.py +0 -0
  30. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/feature/_geodata.py +0 -0
  31. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/feature/_paleomag.py +0 -0
  32. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/feature/_statistics.py +0 -0
  33. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/feature/_tensor2.py +0 -0
  34. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/feature/_tensor3.py +0 -0
  35. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/helpers/__init__.py +0 -0
  36. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/helpers/_helper.py +0 -0
  37. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/helpers/_math.py +0 -0
  38. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/helpers/_notation.py +0 -0
  39. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/math/__init__.py +0 -0
  40. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/math/_matrix.py +0 -0
  41. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/math/_vector.py +0 -0
  42. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/pandas/__init__.py +0 -0
  43. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/pandas/_pandas_api.py +0 -0
  44. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/plotting/__init__.py +0 -0
  45. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/plotting/_fabricplot.py +0 -0
  46. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/plotting/_paleomagplots.py +0 -0
  47. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/plotting/_plot_artists.py +0 -0
  48. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/plotting/_projection.py +0 -0
  49. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/plotting/_roseplot.py +0 -0
  50. {apsg-1.3.0 → apsg-1.3.2}/src/apsg/shell.py +0 -0
apsg-1.3.2/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ APSG - The package for structural geologists.
4
+ Copyright (c) 2015-2024, Ondrej Lexa
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
apsg-1.3.2/PKG-INFO ADDED
@@ -0,0 +1,188 @@
1
+ Metadata-Version: 2.2
2
+ Name: apsg
3
+ Version: 1.3.2
4
+ Summary: APSG - The package for structural geologists
5
+ Author-email: Ondrej Lexa <lexa.ondrej@gmail.com>
6
+ Maintainer-email: Ondrej Lexa <lexa.ondrej@gmail.com>
7
+ License: MIT License
8
+
9
+ APSG - The package for structural geologists.
10
+ Copyright (c) 2015-2024, Ondrej Lexa
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ of this software and associated documentation files (the "Software"), to deal
14
+ in the Software without restriction, including without limitation the rights
15
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ copies of the Software, and to permit persons to whom the Software is
17
+ furnished to do so, subject to the following conditions:
18
+
19
+ The above copyright notice and this permission notice shall be included in all
20
+ copies or substantial portions of the Software.
21
+
22
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ SOFTWARE.
29
+
30
+ Project-URL: Homepage, https://github.com/ondrolexa/apsg
31
+ Project-URL: Documentation, https://apsg.readthedocs.io
32
+ Project-URL: Repository, https://github.com/ondrolexa/apsg.git
33
+ Project-URL: Issues, https://github.com/ondrolexa/apsg/issues
34
+ Project-URL: Changelog, https://github.com/ondrolexa/apsg/blob/master/CHANGELOG.md
35
+ Keywords: structural geology,stereonet,orientation data
36
+ Classifier: Development Status :: 4 - Beta
37
+ Classifier: Intended Audience :: Science/Research
38
+ Classifier: License :: OSI Approved :: MIT License
39
+ Classifier: Operating System :: OS Independent
40
+ Classifier: Programming Language :: Python :: 3
41
+ Requires-Python: >=3.10
42
+ Description-Content-Type: text/markdown
43
+ License-File: LICENSE
44
+ Requires-Dist: numpy
45
+ Requires-Dist: matplotlib>=3.9
46
+ Requires-Dist: scipy
47
+ Requires-Dist: sqlalchemy
48
+ Requires-Dist: pandas
49
+ Provides-Extra: extra
50
+ Requires-Dist: jupyterlab; extra == "extra"
51
+ Requires-Dist: pyqt5; extra == "extra"
52
+ Provides-Extra: tests
53
+ Requires-Dist: pytest; extra == "tests"
54
+ Provides-Extra: docs
55
+ Requires-Dist: sphinx; extra == "docs"
56
+ Requires-Dist: sphinx_rtd_theme; extra == "docs"
57
+ Requires-Dist: readthedocs-sphinx-search; extra == "docs"
58
+ Requires-Dist: ipykernel; extra == "docs"
59
+ Requires-Dist: nbsphinx; extra == "docs"
60
+ Requires-Dist: autodocsumm; extra == "docs"
61
+ Provides-Extra: dev
62
+ Requires-Dist: pytest; extra == "dev"
63
+ Requires-Dist: black; extra == "dev"
64
+ Requires-Dist: sphinx; extra == "dev"
65
+ Requires-Dist: sphinx_rtd_theme; extra == "dev"
66
+ Requires-Dist: readthedocs-sphinx-search; extra == "dev"
67
+ Requires-Dist: ipykernel; extra == "dev"
68
+ Requires-Dist: nbsphinx; extra == "dev"
69
+ Requires-Dist: autodocsumm; extra == "dev"
70
+
71
+ <img src="https://ondrolexa.github.io/apsg/apsg_banner.svg" alt="APSG logo" width="300px"/>
72
+
73
+ [![PyPI - Version](https://img.shields.io/pypi/v/apsg)](https://pypi.org/project/apsg)
74
+ [![Conda](https://img.shields.io/conda/v/conda-forge/apsg)](https://anaconda.org/conda-forge/apsg)
75
+ [![Documentation Status](https://readthedocs.org/projects/apsg/badge/?version=stable)](https://apsg.readthedocs.io/en/stable/?badge=stable)
76
+ [![DOI](https://zenodo.org/badge/24879346.svg)](https://zenodo.org/badge/latestdoi/24879346)
77
+
78
+ ## :thinking: What is APSG?
79
+
80
+ APSG is the package for structural geologists. It defines several new python classes to easily manage, analyze and visualize orientational structural geology data.
81
+
82
+ > [!IMPORTANT]
83
+ > APSG has been significantly refactored from version 1.0 and several changes are
84
+ > breaking backward compatibility. The main APSG namespace provides often-used
85
+ > classes in lowercase names as aliases to `PascalCase` convention used in
86
+ > modules to provide a simplified interface for users. The `PascalCase` names of
87
+ > classes use longer and plain English names instead acronyms for better readability.
88
+ >
89
+ > Check [documentation](https://apsg.readthedocs.org) for more details.
90
+
91
+ ## :hammer_and_wrench: Requirements
92
+
93
+ You need Python 3.9 or later to run APSG. The package requires [NumPy](https://numpy.org/) and [SciPy](https://www.scipy.org/),
94
+ [Matplotlib](https://matplotlib.org/), [SciPy](https://scipy.org/), [SQLAlchemy](https://www.sqlalchemy.org/)
95
+ and [pandas](https://pandas.pydata.org/).
96
+
97
+ ## :rocket: How to install
98
+
99
+ It is strongly suggested to install **apsg** into separate environment. You can create
100
+ Python virtual environment. For Linux and macOS use:
101
+
102
+ python -m venv .venv
103
+ source .venv/bin/activate
104
+
105
+ for Windows use Command Prompt or PowerShell:
106
+
107
+ python -m venv .venv
108
+ .venv\Scripts\activate
109
+
110
+ > [!NOTE]
111
+ > On Microsoft Windows, it may be required to set the execution policy in PowerShell for the user.
112
+ > You can do this by issuing the following PowerShell command:
113
+ > ```
114
+ > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
115
+ > ```
116
+
117
+ and install latest stable version of **apsg** using pip within the environment:
118
+
119
+ pip install apsg
120
+
121
+ To include jupyterlab and pyqt5 in installation, use `extra` option:
122
+
123
+ ## I'm using conda or mamba to manage environments
124
+
125
+ pip install apsg[extra]
126
+
127
+ or install **master** with:
128
+
129
+ pip install git+https://github.com/ondrolexa/apsg.git
130
+
131
+ Alternatively, you can clone the repository and do a local install (recommended for dev):
132
+ git clone https://github.com/ondrolexa/apsg.git
133
+ cd apsg
134
+ pip install -e .[dev]
135
+
136
+ #### Upgrading via pip
137
+
138
+ To upgrade an existing version of APSG from PyPI, execute:
139
+
140
+ pip install apsg --upgrade --no-deps
141
+
142
+ #### Comments on system-wide instalations on Debian systems
143
+
144
+ Latest Debian-based systems does not allow to install non-debian packages system-wide.
145
+ However, installing all requirements allows to force install APSG system-wide without troubles.
146
+
147
+ Install requirements using apt:
148
+
149
+ sudo apt install python3-numpy python3-matplotlib python3-scipy python3-sqlalchemy python3-pandas
150
+
151
+ and then install apsg using pip:
152
+
153
+ pip install --break-system-packages apsg
154
+
155
+ ### I'm using conda or mamba to manage environments
156
+
157
+ If you have already have conda or mamba installed, you can create environment with:
158
+
159
+ conda config --add channels conda-forge
160
+ conda create -n apsg python apsg jupyterlab pyqt
161
+
162
+ or using mamba
163
+
164
+ mamba create -n apsg python apsg jupyterlab pyqt
165
+
166
+ #### Current release info
167
+
168
+ | Name | Downloads | Version | Platforms |
169
+ | --- | --- | --- | --- |
170
+ | [![Conda Recipe](https://img.shields.io/badge/recipe-apsg-green.svg)](https://anaconda.org/conda-forge/apsg) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/apsg.svg)](https://anaconda.org/conda-forge/apsg) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/apsg.svg)](https://anaconda.org/conda-forge/apsg) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/apsg.svg)](https://anaconda.org/conda-forge/apsg) |
171
+
172
+ ## :blue_book: Documentation
173
+
174
+ Explore all the features of APSG. You can find detailed documentation [here](https://apsg.readthedocs.org).
175
+
176
+ ## :computer: Contributing
177
+
178
+ Most discussion happens on [Github](https://github.com/ondrolexa/apsg). Feel free to open [an issue](https://github.com/ondrolexa/apsg/issues/new) or comment on any open issue or pull request. Check ``CONTRIBUTING.md`` for more details.
179
+
180
+ ## :coin: Donate
181
+
182
+ APSG is an open-source project, available for you for free. It took a lot of time and resources to build this software. If you find this software useful and want to support its future development please consider donating me.
183
+
184
+ [![Donate via PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=QTYZWVUNDUAH8&item_name=APSG+development+donation&currency_code=EUR&source=url)
185
+
186
+ ## License
187
+
188
+ APSG is free software: you can redistribute it and/or modify it under the terms of the MIT License. A copy of this license is provided in ``LICENSE`` file.
@@ -24,31 +24,50 @@ You need Python 3.9 or later to run APSG. The package requires [NumPy](https://n
24
24
  [Matplotlib](https://matplotlib.org/), [SciPy](https://scipy.org/), [SQLAlchemy](https://www.sqlalchemy.org/)
25
25
  and [pandas](https://pandas.pydata.org/).
26
26
 
27
- ## :rocket: Quick start
27
+ ## :rocket: How to install
28
28
 
29
- Install the **latest stable** version of APSG from PyPI:
30
- ```bash
31
- pip install apsg
32
- ```
29
+ It is strongly suggested to install **apsg** into separate environment. You can create
30
+ Python virtual environment. For Linux and macOS use:
31
+
32
+ python -m venv .venv
33
+ source .venv/bin/activate
34
+
35
+ for Windows use Command Prompt or PowerShell:
36
+
37
+ python -m venv .venv
38
+ .venv\Scripts\activate
39
+
40
+ > [!NOTE]
41
+ > On Microsoft Windows, it may be required to set the execution policy in PowerShell for the user.
42
+ > You can do this by issuing the following PowerShell command:
43
+ > ```
44
+ > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
45
+ > ```
46
+
47
+ and install latest stable version of **apsg** using pip within the environment:
48
+
49
+ pip install apsg
50
+
51
+ To include jupyterlab and pyqt5 in installation, use `extra` option:
52
+
53
+ ## I'm using conda or mamba to manage environments
54
+
55
+ pip install apsg[extra]
33
56
 
34
57
  or install **master** with:
35
- ```bash
36
- pip install git+https://github.com/ondrolexa/apsg.git
37
- ```
38
58
 
39
- Alternatively, you can cloce the repository and do a local install (recommended for dev):
40
- ```bash
41
- git clone https://github.com/ondrolexa/apsg.git
42
- cd apsg
43
- pip install -e ."
44
- ```
59
+ pip install git+https://github.com/ondrolexa/apsg.git
60
+
61
+ Alternatively, you can clone the repository and do a local install (recommended for dev):
62
+ git clone https://github.com/ondrolexa/apsg.git
63
+ cd apsg
64
+ pip install -e .[dev]
45
65
 
46
66
  #### Upgrading via pip
47
67
 
48
68
  To upgrade an existing version of APSG from PyPI, execute:
49
- ```bash
50
- pip install apsg --upgrade --no-deps
51
- ```
69
+
70
+ pip install apsg --upgrade --no-deps
52
71
 
53
72
  #### Comments on system-wide instalations on Debian systems
54
73
 
@@ -56,36 +75,23 @@ Latest Debian-based systems does not allow to install non-debian packages system
56
75
  However, installing all requirements allows to force install APSG system-wide without troubles.
57
76
 
58
77
  Install requirements using apt:
59
- ```bash
60
- sudo apt install python3-numpy python3-matplotlib python3-scipy python3-sqlalchemy python3-pandas
61
- ```
62
78
 
63
- and then install apsg using pip:
64
- ```bash
65
- pip install --break-system-packages apsg
66
- ```
79
+ sudo apt install python3-numpy python3-matplotlib python3-scipy python3-sqlalchemy python3-pandas
67
80
 
68
- ### Conda/Mamba
81
+ and then install apsg using pip:
69
82
 
70
- The APSG package is also available on `conda-forge` channel. Installing `apsg`
71
- from the `conda-forge` channel can be achieved by adding `conda-forge` to your
72
- channels:
83
+ pip install --break-system-packages apsg
73
84
 
74
- ```bash
75
- conda config --add channels conda-forge
76
- ```
85
+ ### I'm using conda or mamba to manage environments
77
86
 
78
- Once the `conda-forge` channel has been enabled, `apsg` can be installed with:
87
+ If you have already have conda or mamba installed, you can create environment with:
79
88
 
80
- ```bash
81
- conda install apsg
82
- ```
89
+ conda config --add channels conda-forge
90
+ conda create -n apsg python apsg jupyterlab pyqt
83
91
 
84
- It is possible to list all of the versions of `apsg` available on your platform with:
92
+ or using mamba
85
93
 
86
- ```bash
87
- conda search apsg --channel conda-forge
88
- ```
94
+ mamba create -n apsg python apsg jupyterlab pyqt
89
95
 
90
96
  #### Current release info
91
97
 
@@ -0,0 +1,68 @@
1
+ [project]
2
+ name = "apsg"
3
+ dynamic = ["version"]
4
+ description = "APSG - The package for structural geologists"
5
+ readme = "README.md"
6
+ requires-python = ">=3.10"
7
+ license = { file = "LICENSE" }
8
+ keywords = ["structural geology", "stereonet", "orientation data"]
9
+ authors = [{ name = "Ondrej Lexa", email = "lexa.ondrej@gmail.com" }]
10
+ maintainers = [{ name = "Ondrej Lexa", email = "lexa.ondrej@gmail.com" }]
11
+ classifiers = [
12
+ "Development Status :: 4 - Beta",
13
+ "Intended Audience :: Science/Research",
14
+ "License :: OSI Approved :: MIT License",
15
+ "Operating System :: OS Independent",
16
+ "Programming Language :: Python :: 3",
17
+ ]
18
+ dependencies = ["numpy", "matplotlib>=3.9", "scipy", "sqlalchemy", "pandas"]
19
+
20
+ [project.optional-dependencies]
21
+ extra = ["jupyterlab", "pyqt5"]
22
+ tests = ["pytest"]
23
+ docs = [
24
+ "sphinx",
25
+ "sphinx_rtd_theme",
26
+ "readthedocs-sphinx-search",
27
+ "ipykernel",
28
+ "nbsphinx",
29
+ "autodocsumm",
30
+ ]
31
+ dev = [
32
+ "pytest",
33
+ "black",
34
+ "sphinx",
35
+ "sphinx_rtd_theme",
36
+ "readthedocs-sphinx-search",
37
+ "ipykernel",
38
+ "nbsphinx",
39
+ "autodocsumm",
40
+ ]
41
+
42
+ [project.urls]
43
+ Homepage = "https://github.com/ondrolexa/apsg"
44
+ Documentation = "https://apsg.readthedocs.io"
45
+ Repository = "https://github.com/ondrolexa/apsg.git"
46
+ Issues = "https://github.com/ondrolexa/apsg/issues"
47
+ Changelog = "https://github.com/ondrolexa/apsg/blob/master/CHANGELOG.md"
48
+
49
+ [project.scripts]
50
+ iapsg = "apsg.shell:main"
51
+
52
+ [build-system]
53
+ requires = ["setuptools >= 61.0"]
54
+ build-backend = "setuptools.build_meta"
55
+
56
+ [tool.setuptools.dynamic]
57
+ version = { attr = "apsg.__version__" }
58
+
59
+ [tool.black]
60
+ line-length = 88
61
+ exclude = '''
62
+ /(
63
+ \.toml
64
+ |\.sh
65
+ |\.git
66
+ |\.ini
67
+ )/
68
+ '''
apsg-1.3.2/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -1,6 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- import importlib.metadata
4
3
  from apsg.math import (
5
4
  Vector3 as vec,
6
5
  Vector2 as vec2,
@@ -99,6 +98,6 @@ __all__ = (
99
98
  "quicknet",
100
99
  )
101
100
 
102
- __version__ = importlib.metadata.version("apsg")
101
+ __version__ = "1.3.2"
103
102
  __author__ = "Ondrej Lexa"
104
103
  __email__ = "lexa.ondrej@gmail.com"