├── VERSION ├── src ├── engine │ ├── .dockerignore │ ├── src │ │ ├── strings │ │ │ └── CMakeLists.txt │ │ ├── logging │ │ │ ├── CMakeLists.txt │ │ │ └── ProgressLogger.cpp │ │ ├── engine │ │ │ ├── dependency │ │ │ │ └── CMakeLists.txt │ │ │ ├── utils │ │ │ │ └── CMakeLists.txt │ │ │ ├── srv │ │ │ │ └── CMakeLists.txt │ │ │ ├── config │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── EngineOptions.cpp │ │ │ │ └── MonitorOptions.cpp │ │ │ ├── CMakeLists.txt │ │ │ ├── preprocessors │ │ │ │ └── CMakeLists.txt │ │ │ ├── pipelines │ │ │ │ └── CMakeLists.txt │ │ │ └── handlers │ │ │ │ ├── ArrowSocketInputStream.cpp │ │ │ │ ├── ArrowSocketOutputStream.cpp │ │ │ │ └── CMakeLists.txt │ │ ├── tsindex │ │ │ ├── CMakeLists.txt │ │ │ └── Index.cpp │ │ ├── optimizers │ │ │ ├── CMakeLists.txt │ │ │ ├── BFGS.cpp │ │ │ ├── AdaGrad.cpp │ │ │ └── Adam.cpp │ │ ├── io │ │ │ └── CMakeLists.txt │ │ ├── textmining │ │ │ └── CMakeLists.txt │ │ ├── memmap │ │ │ ├── CMakeLists.txt │ │ │ ├── Page.cpp │ │ │ └── StringVector.cpp │ │ ├── transpilation │ │ │ └── CMakeLists.txt │ │ ├── communication │ │ │ ├── CMakeLists.txt │ │ │ ├── SocketLogger.cpp │ │ │ ├── Warner.cpp │ │ │ └── Logger.cpp │ │ ├── containers │ │ │ ├── CMakeLists.txt │ │ │ └── Encoding.cpp │ │ ├── multithreading │ │ │ ├── CMakeLists.txt │ │ │ ├── Spinlock.cpp │ │ │ ├── Barrier.cpp │ │ │ ├── Communicator.cpp │ │ │ ├── ReadWriteLock.cpp │ │ │ ├── ReadLock.cpp │ │ │ ├── WriteLock.cpp │ │ │ └── WeakWriteLock.cpp │ │ ├── metrics │ │ │ ├── CMakeLists.txt │ │ │ └── MetricImpl.cpp │ │ ├── fastprop │ │ │ └── CMakeLists.txt │ │ ├── predictors │ │ │ └── CMakeLists.txt │ │ ├── database │ │ │ ├── CMakeLists.txt │ │ │ └── DatabaseReader.cpp │ │ ├── commands │ │ │ ├── CMakeLists.txt │ │ │ ├── Command.cpp │ │ │ ├── ViewCommand.cpp │ │ │ ├── ColumnCommand.cpp │ │ │ ├── ProjectCommand.cpp │ │ │ ├── DatabaseCommand.cpp │ │ │ ├── PipelineCommand.cpp │ │ │ ├── DataFrameCommand.cpp │ │ │ ├── BooleanColumnView.cpp │ │ │ ├── FloatColumnOrFloatColumnView.cpp │ │ │ └── StringColumnOrStringColumnView.cpp │ │ └── helpers │ │ │ ├── IntSet.cpp │ │ │ ├── StringIterator.cpp │ │ │ ├── DataFrameView.cpp │ │ │ ├── CMakeLists.txt │ │ │ ├── Features.cpp │ │ │ ├── ColumnDescription.cpp │ │ │ └── FeatureContainer.cpp │ ├── conan-repository │ │ └── recipes │ │ │ └── xgboost │ │ │ ├── config.yml │ │ │ └── all │ │ │ ├── conandata.yml │ │ │ └── test_package │ │ │ ├── CMakeLists.txt │ │ │ ├── src │ │ │ └── example.cpp │ │ │ └── conanfile.py │ ├── .gitignore │ ├── cmake │ │ ├── cpplint.cmake │ │ ├── cppcheck.cmake │ │ ├── clang_tidy.cmake │ │ ├── iwyu.cmake │ │ ├── static_analysis.cmake │ │ ├── ccache.cmake │ │ └── version.cmake │ ├── include │ │ ├── helpers │ │ │ ├── LossFunctionLiteral.hpp │ │ │ ├── enums │ │ │ │ └── enums.hpp │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ ├── MemoryMappedIndex.hpp │ │ │ ├── Index.hpp │ │ │ ├── InMemoryIndex.hpp │ │ │ ├── StringSplitter.hpp │ │ │ ├── StringReplacer.hpp │ │ │ ├── Subrole.hpp │ │ │ └── Endianness.hpp │ │ ├── io │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ ├── Datatype.hpp │ │ │ ├── CSVSniffer.hpp │ │ │ └── io.hpp │ │ ├── engine │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ ├── ULong.hpp │ │ │ ├── srv │ │ │ │ └── srv.hpp │ │ │ ├── config │ │ │ │ └── config.hpp │ │ │ ├── engine.hpp │ │ │ ├── pipelines │ │ │ │ ├── Purpose.hpp │ │ │ │ ├── save.hpp │ │ │ │ ├── to_sql.hpp │ │ │ │ ├── check.hpp │ │ │ │ ├── load.hpp │ │ │ │ └── load_fitted.hpp │ │ │ ├── utils │ │ │ │ ├── Endianness.hpp │ │ │ │ ├── NullChecker.hpp │ │ │ │ ├── Aggregations.hpp │ │ │ │ └── utils.hpp │ │ │ ├── preprocessors │ │ │ │ └── preprocessors.hpp │ │ │ ├── dependency │ │ │ │ ├── PredTracker.hpp │ │ │ │ ├── WarningTracker.hpp │ │ │ │ ├── FETracker.hpp │ │ │ │ ├── dependency.hpp │ │ │ │ └── PreprocessorTracker.hpp │ │ │ └── handlers │ │ │ │ └── handlers.hpp │ │ ├── metrics │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ ├── metrics.hpp │ │ │ └── Features.hpp │ │ ├── tsindex │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ └── tsindex.hpp │ │ ├── strings │ │ │ ├── strings.hpp │ │ │ └── StringHasher.hpp │ │ ├── commands │ │ │ ├── Float.hpp │ │ │ ├── commands.hpp │ │ │ ├── Int.hpp │ │ │ ├── LinearRegressionHyperparams.hpp │ │ │ ├── LogisticRegressionHyperparams.hpp │ │ │ ├── DataFrameFromJSON.hpp │ │ │ ├── NotSupportedInCommunity.hpp │ │ │ ├── GetContent.hpp │ │ │ ├── CheckPipeline.hpp │ │ │ ├── Predictor.hpp │ │ │ ├── BasicCommand.hpp │ │ │ ├── FeatureLearner.hpp │ │ │ └── WarningFingerprint.hpp │ │ ├── database │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ ├── database.hpp │ │ │ ├── DatabaseParser.hpp │ │ │ └── QuerySplitter.hpp │ │ ├── fastprop │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ ├── enums │ │ │ │ ├── enums.hpp │ │ │ │ └── Aggregation.hpp │ │ │ ├── algorithm │ │ │ │ ├── algorithm.hpp │ │ │ │ ├── FitParams.hpp │ │ │ │ ├── TableHolder.hpp │ │ │ │ ├── TransformParams.hpp │ │ │ │ └── TableHolderParams.hpp │ │ │ ├── subfeatures │ │ │ │ └── subfeatures.hpp │ │ │ └── containers │ │ │ │ ├── Index.hpp │ │ │ │ ├── IntSet.hpp │ │ │ │ ├── Features.hpp │ │ │ │ ├── Column.hpp │ │ │ │ ├── DataFrame.hpp │ │ │ │ ├── Placeholder.hpp │ │ │ │ ├── DataFrameView.hpp │ │ │ │ ├── Predictions.hpp │ │ │ │ ├── ColumnView.hpp │ │ │ │ ├── Subfeatures.hpp │ │ │ │ └── Match.hpp │ │ ├── transpilation │ │ │ ├── Float.hpp │ │ │ ├── transpilation.hpp │ │ │ └── SQLParams.hpp │ │ ├── logging │ │ │ └── logging.hpp │ │ ├── containers │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ ├── ULong.hpp │ │ │ ├── Roles.hpp │ │ │ ├── Schema.hpp │ │ │ ├── DataFrameIndex.hpp │ │ │ ├── CategoricalFeatures.hpp │ │ │ ├── DataFrameContent.hpp │ │ │ ├── NumericalFeatures.hpp │ │ │ └── ViewContent.hpp │ │ ├── optimizers │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ └── optimizers.hpp │ │ ├── predictors │ │ │ ├── Float.hpp │ │ │ ├── predictors.hpp │ │ │ ├── Int.hpp │ │ │ ├── Fingerprint.hpp │ │ │ ├── IntFeature.hpp │ │ │ ├── FloatFeature.hpp │ │ │ ├── PredictorHyperparams.hpp │ │ │ ├── XGBoostHyperparams.hpp │ │ │ ├── LinearRegressionHyperparams.hpp │ │ │ └── LogisticRegressionHyperparams.hpp │ │ ├── textmining │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ └── textmining.hpp │ │ ├── fct │ │ │ └── fct.hpp │ │ ├── communication │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ ├── ULong.hpp │ │ │ ├── Warning.hpp │ │ │ └── communication.hpp │ │ ├── featurelearners │ │ │ ├── Float.hpp │ │ │ ├── Int.hpp │ │ │ └── featurelearners.hpp │ │ ├── debug │ │ │ ├── debug.hpp │ │ │ ├── throw_unless.hpp │ │ │ └── assert_true.hpp │ │ ├── memmap │ │ │ ├── memmap.hpp │ │ │ ├── FreeBlock.hpp │ │ │ └── Page.hpp │ │ └── multithreading │ │ │ ├── multithreading.hpp │ │ │ ├── maximum.hpp │ │ │ └── minimum.hpp │ ├── .clang-tidy │ ├── .clang-format │ └── test │ │ ├── CMakeLists.txt │ │ └── unit │ │ └── io │ │ └── test_StatementMaker.cpp ├── python-api │ ├── getml │ │ ├── VERSION │ │ ├── utilities │ │ │ ├── __init__.py │ │ │ ├── templates │ │ │ │ └── __init__.py │ │ │ └── formatting │ │ │ │ ├── ellipsis.py │ │ │ │ └── __init__.py │ │ ├── data │ │ │ ├── columns │ │ │ │ ├── get_scalar.py │ │ │ │ ├── format.py │ │ │ │ ├── repr.py │ │ │ │ ├── repr_html.py │ │ │ │ ├── to_numpy.py │ │ │ │ ├── unique.py │ │ │ │ ├── length.py │ │ │ │ ├── constants.py │ │ │ │ └── last_change.py │ │ │ ├── split │ │ │ │ └── __init__.py │ │ │ └── roles │ │ │ │ └── __init__.py │ │ ├── sqlite3 │ │ │ ├── num_words.py │ │ │ ├── email_domain.py │ │ │ ├── contains.py │ │ │ ├── get_word.py │ │ │ ├── split_text_field.py │ │ │ ├── var.py │ │ │ ├── median.py │ │ │ └── stddev.py │ │ ├── version.py │ │ ├── project │ │ │ └── containers │ │ │ │ └── __init__.py │ │ ├── pipeline │ │ │ ├── sql_string.py │ │ │ ├── tags.py │ │ │ └── table.py │ │ ├── events │ │ │ └── __init__.py │ │ ├── hyperopt │ │ │ ├── burn_in.py │ │ │ ├── optimization.py │ │ │ └── kernels.py │ │ ├── log.py │ │ └── preprocessors │ │ │ ├── __init__.py │ │ │ └── validate.py │ ├── tests │ │ ├── __init__.py │ │ ├── data │ │ │ ├── __init__.py │ │ │ └── test_io_stream.py │ │ ├── unit │ │ │ ├── __init__.py │ │ │ └── test_import_all.py │ │ ├── datasets │ │ │ └── __init__.py │ │ ├── pipeline │ │ │ └── __init__.py │ │ └── engine │ │ │ └── test_set_project.py │ ├── hatch_build.py │ └── README.md ├── getml-app │ ├── src │ │ ├── go.mod │ │ ├── tcp │ │ │ ├── command.go │ │ │ ├── cmd.go │ │ │ ├── recvString.go │ │ │ ├── basicCommand.go │ │ │ ├── logger.go │ │ │ ├── marshalCommand.go │ │ │ ├── recvCmd.go │ │ │ ├── sendCommand.go │ │ │ ├── sendBytes.go │ │ │ ├── isAlive.go │ │ │ ├── portIsOccupied.go │ │ │ ├── recvBytes.go │ │ │ ├── sendString.go │ │ │ ├── loadPipelineFromDisc.go │ │ │ └── createConnectionToEngine.go │ │ ├── uninstall.go │ │ ├── install │ │ │ ├── FileExists.go │ │ │ ├── UsrLocal.go │ │ │ ├── GetBinDir.go │ │ │ ├── GetConfigPath.go │ │ │ ├── filesExists.go │ │ │ ├── GetHomeDir.go │ │ │ ├── GetMainDir.go │ │ │ └── copyDir.go │ │ ├── printStartMessage.go │ │ ├── makePackageName.go │ │ ├── commands │ │ │ ├── makeInstallCommand.go │ │ │ ├── makeUninstallCommand.go │ │ │ ├── loadConfig.go │ │ │ ├── makeStopCommand.go │ │ │ └── addHomeDirFlag.go │ │ ├── config │ │ │ ├── Load.go │ │ │ ├── MonitorConfig.go │ │ │ └── CommandLine.go │ │ ├── stopExistingProcess.go │ │ ├── changeToResourceDir.go │ │ └── createConnectionToEngine.go │ ├── format.sh │ ├── setup.sh │ ├── getml_icon_tile6_1024_4TR_icon.ico │ └── README.md └── package-build-imports │ ├── shape-main.png │ ├── config.json │ ├── environment.json │ └── jwks.pub.json ├── .gitattributes ├── demo-notebooks ├── requirements.txt ├── docker-compose.yml └── Dockerfile ├── benchmarks ├── requirements.for-pystan.txt ├── .env ├── requirements.for-kats.txt ├── requirements.txt ├── run_benchmarks.sh ├── requirements.for-fbprophet.txt ├── benchmarks │ ├── drivers │ │ └── __init__.py │ ├── __init__.py │ ├── pyproject.toml │ ├── demo │ │ ├── add_original_columns.py │ │ ├── remove_target_column.py │ │ ├── __init__.py │ │ └── print_time_taken.py │ ├── run_all.py │ └── utils.py └── docker-compose.yml ├── .git-blame-ignore-revs ├── assets ├── getml_logo.png ├── benchmarks_plot.png ├── getml_logo_dark.png ├── benchmarks_plot_log.png └── benchmarks_plot_linear.png ├── mise.toml └── runtime ├── docker-compose.yml └── entrypoint.sh /VERSION: -------------------------------------------------------------------------------- 1 | 1.5.1 2 | -------------------------------------------------------------------------------- /src/engine/.dockerignore: -------------------------------------------------------------------------------- 1 | build 2 | -------------------------------------------------------------------------------- /src/python-api/getml/VERSION: -------------------------------------------------------------------------------- 1 | ../../../VERSION -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | demo-notebooks/** linguist-vendored 2 | -------------------------------------------------------------------------------- /src/getml-app/src/go.mod: -------------------------------------------------------------------------------- 1 | module getML 2 | 3 | go 1.17 4 | -------------------------------------------------------------------------------- /demo-notebooks/requirements.txt: -------------------------------------------------------------------------------- 1 | jupyterlab~=4.2 2 | ipywidgets~=8.1 -------------------------------------------------------------------------------- /benchmarks/requirements.for-pystan.txt: -------------------------------------------------------------------------------- 1 | Cython==3.0.9 2 | NumPy==1.21.6 -------------------------------------------------------------------------------- /src/getml-app/format.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | go fmt getML config install 3 | -------------------------------------------------------------------------------- /src/getml-app/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd src 4 | 5 | go build 6 | -------------------------------------------------------------------------------- /benchmarks/.env: -------------------------------------------------------------------------------- 1 | VERSION_NUMBER=1.4.0 2 | GETML_VERSION=getml-1.4.0-x64-community-edition-linux -------------------------------------------------------------------------------- /.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | # Switch to ruff for formatting 2 | 5ec353baae51d6f23ac4d0a1050b03da9ed2d804 3 | -------------------------------------------------------------------------------- /assets/getml_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getml/getml-community/HEAD/assets/getml_logo.png -------------------------------------------------------------------------------- /assets/benchmarks_plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getml/getml-community/HEAD/assets/benchmarks_plot.png -------------------------------------------------------------------------------- /assets/getml_logo_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getml/getml-community/HEAD/assets/getml_logo_dark.png -------------------------------------------------------------------------------- /benchmarks/requirements.for-kats.txt: -------------------------------------------------------------------------------- 1 | -r requirements.for-fbprophet.txt 2 | fbprophet==0.7.1 3 | packaging==21.3 -------------------------------------------------------------------------------- /src/engine/src/strings/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | String.cpp 5 | ) 6 | -------------------------------------------------------------------------------- /assets/benchmarks_plot_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getml/getml-community/HEAD/assets/benchmarks_plot_log.png -------------------------------------------------------------------------------- /assets/benchmarks_plot_linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getml/getml-community/HEAD/assets/benchmarks_plot_linear.png -------------------------------------------------------------------------------- /src/engine/src/logging/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | ProgressLogger.cpp 5 | ) 6 | -------------------------------------------------------------------------------- /src/engine/src/engine/dependency/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | DataFrameTracker.cpp 5 | ) 6 | -------------------------------------------------------------------------------- /src/engine/src/engine/utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | SQLDependencyTracker.cpp 5 | ) 6 | -------------------------------------------------------------------------------- /src/engine/conan-repository/recipes/xgboost/config.yml: -------------------------------------------------------------------------------- 1 | versions: 2 | "2.0.3": 3 | folder: all 4 | "1.7.6": 5 | folder: all 6 | -------------------------------------------------------------------------------- /src/engine/src/tsindex/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | InMemoryIndex.cpp 5 | Index.cpp 6 | ) 7 | -------------------------------------------------------------------------------- /src/package-build-imports/shape-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getml/getml-community/HEAD/src/package-build-imports/shape-main.png -------------------------------------------------------------------------------- /src/engine/conan-repository/recipes/xgboost/all/conandata.yml: -------------------------------------------------------------------------------- 1 | sources: 2 | git: 3 | url: 4 | - "https://github.com/dmlc/xgboost.git" 5 | -------------------------------------------------------------------------------- /src/engine/src/optimizers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | AdaGrad.cpp 5 | Adam.cpp 6 | BFGS.cpp 7 | ) 8 | -------------------------------------------------------------------------------- /src/getml-app/getml_icon_tile6_1024_4TR_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/getml/getml-community/HEAD/src/getml-app/getml_icon_tile6_1024_4TR_icon.ico -------------------------------------------------------------------------------- /src/engine/src/io/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | CSVReader.cpp 5 | CSVWriter.cpp 6 | StatementMaker.cpp 7 | ) 8 | -------------------------------------------------------------------------------- /src/engine/src/engine/srv/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | RequestHandler.cpp 5 | ServerConnectionFactoryImpl.cpp 6 | ) 7 | -------------------------------------------------------------------------------- /src/engine/src/textmining/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | RowIndex.cpp 5 | StringSplitter.cpp 6 | Vocabulary.cpp 7 | ) 8 | -------------------------------------------------------------------------------- /benchmarks/requirements.txt: -------------------------------------------------------------------------------- 1 | -r requirements.for-kats.txt 2 | kats==0.2.0 3 | tsfresh==0.18 4 | featuretools==1.12.1 5 | tsflex==0.3.0 6 | cesium==0.12.1 7 | tsfel==0.1.4 -------------------------------------------------------------------------------- /src/engine/src/engine/config/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | EngineOptions.cpp 5 | MonitorOptions.cpp 6 | Options.cpp 7 | ) 8 | -------------------------------------------------------------------------------- /src/engine/src/memmap/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | FreeBlocksTracker.cpp 5 | Page.cpp 6 | Pool.cpp 7 | StringVector.cpp 8 | ) 9 | -------------------------------------------------------------------------------- /benchmarks/run_benchmarks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cd /home/getml/engine 3 | ./getML --install --home-directory=/home/getml/storage & 4 | 5 | cd /home/getml/benchmarks 6 | python3.8 run_benchmarks.py -------------------------------------------------------------------------------- /benchmarks/requirements.for-fbprophet.txt: -------------------------------------------------------------------------------- 1 | -r requirements.for-pystan.txt 2 | convertdate==2.4.0 3 | holidays==0.23 4 | LunarCalendar==0.0.9 5 | pandas==1.3.5 6 | pystan==2.19.1.1 7 | tqdm==4.66.2 -------------------------------------------------------------------------------- /src/getml-app/README.md: -------------------------------------------------------------------------------- 1 | # getml-app 2 | 3 | The getML App is used by the Windows and Linux version as the main entry point. 4 | 5 | (The macOS Version uses a Swift implementation instead.) 6 | -------------------------------------------------------------------------------- /src/engine/src/transpilation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | HumanReadableSQLGenerator.cpp 5 | HumanReadableTrimming.cpp 6 | SQLDialectParser.cpp 7 | SQLGenerator.cpp 8 | ) 9 | -------------------------------------------------------------------------------- /src/python-api/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | -------------------------------------------------------------------------------- /benchmarks/benchmarks/drivers/__init__.py: -------------------------------------------------------------------------------- 1 | from .drive_getml import drive_getml 2 | from .drive_wrappers import ( 3 | drive_featuretools, 4 | drive_kats, 5 | drive_tsfel, 6 | drive_tsflex, 7 | drive_tsfresh, 8 | ) 9 | -------------------------------------------------------------------------------- /src/python-api/getml/utilities/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | -------------------------------------------------------------------------------- /src/python-api/tests/data/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | -------------------------------------------------------------------------------- /src/python-api/tests/unit/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | -------------------------------------------------------------------------------- /benchmarks/benchmarks/__init__.py: -------------------------------------------------------------------------------- 1 | from . import drivers 2 | from .benchmarks import ( 3 | benchmark_air_pollution, 4 | benchmark_dodgers, 5 | benchmark_energy, 6 | benchmark_interstate94, 7 | benchmark_tetuan, 8 | ) 9 | -------------------------------------------------------------------------------- /src/engine/src/communication/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | Logger.cpp 5 | Monitor.cpp 6 | Receiver.cpp 7 | Sender.cpp 8 | SocketLogger.cpp 9 | Warner.cpp 10 | Warnings.cpp 11 | ) 12 | -------------------------------------------------------------------------------- /src/python-api/tests/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | -------------------------------------------------------------------------------- /src/python-api/tests/pipeline/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | -------------------------------------------------------------------------------- /src/engine/src/containers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | DataFrame.cpp 5 | DataFramePrinter.cpp 6 | DataFrameReader.cpp 7 | Encoding.cpp 8 | InMemoryEncoding.cpp 9 | MemoryMappedEncoding.cpp 10 | ) 11 | -------------------------------------------------------------------------------- /src/engine/src/multithreading/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | Barrier.cpp 5 | Communicator.cpp 6 | ReadLock.cpp 7 | ReadWriteLock.cpp 8 | Spinlock.cpp 9 | WeakWriteLock.cpp 10 | WriteLock.cpp 11 | ) 12 | -------------------------------------------------------------------------------- /benchmarks/benchmarks/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.mypy] 2 | ingnore_errors = true 3 | 4 | [tool.isort] 5 | multi_line_output = 3 6 | profile = "black" 7 | sections = ['FUTURE', 'STDLIB', 'THIRDPARTY', 'GETML', 'FIRSTPARTY', 'LOCALFOLDER'] 8 | known_getml = ['getml'] 9 | -------------------------------------------------------------------------------- /src/engine/conan-repository/recipes/xgboost/all/test_package/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.15) 2 | project(PackageTest CXX) 3 | 4 | find_package(xgboost CONFIG REQUIRED) 5 | 6 | add_executable(example src/example.cpp) 7 | target_link_libraries(example xgboost::xgboost) 8 | -------------------------------------------------------------------------------- /src/engine/src/metrics/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | Accuracy.cpp 5 | AUC.cpp 6 | CrossEntropy.cpp 7 | MAE.cpp 8 | MetricImpl.cpp 9 | RMSE.cpp 10 | RSquared.cpp 11 | Scorer.cpp 12 | Scores.cpp 13 | Summarizer.cpp 14 | ) 15 | -------------------------------------------------------------------------------- /demo-notebooks/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | notebooks: 3 | build: 4 | context: ./ 5 | dockerfile: Dockerfile 6 | networks: 7 | - notebooks_network 8 | ports: 9 | - "1709:1709" 10 | - "8888:8888" 11 | 12 | networks: 13 | notebooks_network: -------------------------------------------------------------------------------- /src/engine/.gitignore: -------------------------------------------------------------------------------- 1 | *.ipch 2 | *.bin 3 | *.o 4 | *.db 5 | *.cache 6 | projects/* 7 | 8 | *.swp 9 | *.swo 10 | /**/.DS_Store 11 | 12 | /**/.vscode 13 | 14 | **/model.json 15 | **/model.sql 16 | 17 | compile_commands.json 18 | 19 | *~ 20 | #~ 21 | 22 | build/ 23 | CMakeUserPresets.json 24 | -------------------------------------------------------------------------------- /src/engine/src/fastprop/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | AbstractFeature.cpp 5 | Aggregator.cpp 6 | Condition.cpp 7 | ConditionParser.cpp 8 | FastProp.cpp 9 | FastPropContainer.cpp 10 | Maker.cpp 11 | RSquared.cpp 12 | SQLMaker.cpp 13 | ) 14 | -------------------------------------------------------------------------------- /benchmarks/benchmarks/demo/add_original_columns.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | def _add_original_columns(original_df, df_selected, cutoff=0): 5 | cutoff = max(0, cutoff) 6 | for colname in original_df.columns: 7 | df_selected[colname] = np.asarray(original_df[colname])[cutoff:] 8 | return df_selected 9 | -------------------------------------------------------------------------------- /src/engine/src/engine/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(config) 2 | add_subdirectory(dependency) 3 | add_subdirectory(handlers) 4 | add_subdirectory(pipelines) 5 | add_subdirectory(preprocessors) 6 | add_subdirectory(srv) 7 | add_subdirectory(utils) 8 | 9 | target_sources( 10 | engine 11 | PRIVATE 12 | main.cpp 13 | ) 14 | -------------------------------------------------------------------------------- /src/engine/src/engine/preprocessors/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | CategoryTrimmer.cpp 5 | EMailDomain.cpp 6 | Imputation.cpp 7 | PreprocessorImpl.cpp 8 | PreprocessorParser.cpp 9 | Seasonal.cpp 10 | Substring.cpp 11 | TextFieldSplitter.cpp 12 | data_model_checking.cpp 13 | ) 14 | -------------------------------------------------------------------------------- /src/engine/conan-repository/recipes/xgboost/all/test_package/src/example.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "xgboost/context.h" 4 | 5 | auto main() -> int { 6 | auto const ctx = xgboost::Context{}; 7 | std::ignore = ctx.Device() == xgboost::DeviceOrd::CPU(); 8 | std::ignore = ctx.Ordinal() == xgboost::Context::kCpuId; 9 | } 10 | -------------------------------------------------------------------------------- /src/engine/src/predictors/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | Encoding.cpp 5 | LinearRegression.cpp 6 | LogisticRegression.cpp 7 | PredictorImpl.cpp 8 | PredictorParser.cpp 9 | StandardScaler.cpp 10 | XGBoostIteratorDense.cpp 11 | XGBoostIteratorSparse.cpp 12 | XGBoostPredictor.cpp 13 | ) 14 | -------------------------------------------------------------------------------- /src/engine/cmake/cpplint.cmake: -------------------------------------------------------------------------------- 1 | find_program(CPPLINT cpplint) 2 | if(CPPLINT) 3 | message(STATUS "Found cpplint: ${CPPLINT}. Will be using it to check the code") 4 | set(CMAKE_CXX_CPPLINT "${CPPLINT}" CACHE FILEPATH "Path to cpplint executable") 5 | else() 6 | message(STATUS "cpplint not found. Please install it to check the code") 7 | endif() 8 | -------------------------------------------------------------------------------- /src/engine/cmake/cppcheck.cmake: -------------------------------------------------------------------------------- 1 | find_program(CPPCHECK cppcheck) 2 | if(CPPCHECK) 3 | message(STATUS "Found cppcheck: ${CPPCHECK}. Will be using it to check the code") 4 | set(CMAKE_CXX_CPPCHECK "${CPPCHECK}" CACHE FILEPATH "Path to cppcheck executable") 5 | else() 6 | message(STATUS "cppcheck not found. Please install it to check the code") 7 | endif() 8 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/command.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import "net" 11 | 12 | type command interface { 13 | send(conn *net.TCPConn) error 14 | } 15 | -------------------------------------------------------------------------------- /src/engine/src/database/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | ContentGetter.cpp 5 | CSVBuffer.cpp 6 | DatabaseParser.cpp 7 | DatabaseReader.cpp 8 | MySQL.cpp 9 | MySQLIterator.cpp 10 | Postgres.cpp 11 | PostgresIterator.cpp 12 | QuerySplitter.cpp 13 | Sqlite3.cpp 14 | Sqlite3Iterator.cpp 15 | sniff.cpp 16 | ) 17 | -------------------------------------------------------------------------------- /src/engine/include/helpers/LossFunctionLiteral.hpp: -------------------------------------------------------------------------------- 1 | #ifndef HELPERS_LOSSFUNCTIONLITERAL_HPP_ 2 | #define HELPERS_LOSSFUNCTIONLITERAL_HPP_ 3 | 4 | #include 5 | 6 | namespace helpers { 7 | 8 | using LossFunctionLiteral = rfl::Literal<"CrossEntropyLoss", "SquareLoss">; 9 | 10 | } // namespace helpers 11 | 12 | #endif // HELPERS_AGGREGATIONS_HPP_ 13 | -------------------------------------------------------------------------------- /src/engine/cmake/clang_tidy.cmake: -------------------------------------------------------------------------------- 1 | find_program(CLANG_TIDY clang-tidy) 2 | if(CLANG_TIDY) 3 | message(STATUS "Found clang-tidy: ${CLANG_TIDY}. Will be using it to check the code") 4 | set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY}" CACHE FILEPATH "Path to clang-tidy executable") 5 | else() 6 | message(STATUS "clang-tidy not found. Please install it to check the code") 7 | endif() 8 | -------------------------------------------------------------------------------- /benchmarks/benchmarks/run_all.py: -------------------------------------------------------------------------------- 1 | """ 2 | Runs the benchmark scripts 3 | """ 4 | 5 | from .benchmarks import benchmark_interstate94 6 | from .drivers import ( 7 | drive_featuretools, 8 | drive_getml, 9 | drive_tsfel, 10 | drive_tsflex, 11 | drive_tsfresh, 12 | ) 13 | 14 | all_drivers = [drive_getml, drive_tsflex] 15 | 16 | benchmark_interstate94(all_drivers) 17 | -------------------------------------------------------------------------------- /src/engine/src/memmap/Page.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "memmap/Page.hpp" 9 | 10 | namespace memmap { 11 | 12 | Page::Page() : block_size_(0), is_allocated_(false) {} 13 | 14 | } // namespace memmap 15 | -------------------------------------------------------------------------------- /benchmarks/benchmarks/demo/remove_target_column.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | 4 | 5 | def _remove_target_column(data_frame: pd.DataFrame, target: str) -> pd.DataFrame: 6 | colnames = np.asarray(data_frame.columns) 7 | if target not in colnames: 8 | return data_frame 9 | colnames = colnames[colnames != target] 10 | return data_frame[list(colnames)] 11 | -------------------------------------------------------------------------------- /src/engine/include/io/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef IO_FLOAT_HPP_ 9 | #define IO_FLOAT_HPP_ 10 | 11 | namespace io { 12 | using Float = double; 13 | } // namespace io 14 | 15 | #endif // IO_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /benchmarks/benchmarks/demo/__init__.py: -------------------------------------------------------------------------------- 1 | from .benchmark import Benchmark 2 | from .cesiumml_builder import CesiumMLBuilder 3 | from .ft_time_series_builder import FTTimeSeriesBuilder 4 | from .kats_builder import KATSBuilder 5 | from .load import load_or_query, load_or_retrieve 6 | from .tsfel_builder import TSFELBuilder 7 | from .tsflex_builder import TsflexBuilder 8 | from .tsfresh_builder import TSFreshBuilder 9 | -------------------------------------------------------------------------------- /src/python-api/getml/data/columns/get_scalar.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | def _get_scalar(column, index) -> float: 10 | index = index if index >= 0 else len(column) + index 11 | return column[index : index + 1].to_numpy()[0] 12 | -------------------------------------------------------------------------------- /benchmarks/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | benchmarks: 3 | build: 4 | context: ./ 5 | dockerfile: Dockerfile 6 | platforms: 7 | - "linux/amd64" 8 | args: 9 | - VERSION_NUMBER=$VERSION_NUMBER 10 | - GETML_VERSION=$GETML_VERSION 11 | networks: 12 | - benchmarks_network 13 | ports: 14 | - "1709:1709" 15 | 16 | networks: 17 | benchmarks_network: -------------------------------------------------------------------------------- /src/engine/include/helpers/enums/enums.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef HELPERS_ENUMS_ENUMS_HPP_ 9 | #define HELPERS_ENUMS_ENUMS_HPP_ 10 | 11 | #include "helpers/enums/Aggregation.hpp" 12 | 13 | #endif // HELPERS_ENUMS_ENUMS_HPP_ 14 | -------------------------------------------------------------------------------- /src/engine/src/engine/pipelines/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | FeatureLearnerParser.cpp 5 | FittedPipeline.cpp 6 | Pipeline.cpp 7 | Predictors.cpp 8 | check.cpp 9 | fit.cpp 10 | load.cpp 11 | load_fitted.cpp 12 | make_placeholder.cpp 13 | modify_data_frames.cpp 14 | save.cpp 15 | score.cpp 16 | staging.cpp 17 | to_sql.cpp 18 | transform.cpp 19 | ) 20 | -------------------------------------------------------------------------------- /src/engine/src/multithreading/Spinlock.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "multithreading/Spinlock.hpp" 9 | 10 | namespace multithreading { 11 | 12 | Spinlock::Spinlock() { flag_.clear(); } 13 | 14 | } // namespace multithreading 15 | -------------------------------------------------------------------------------- /src/getml-app/src/uninstall.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "getML/install" 5 | "os" 6 | "path" 7 | "runtime" 8 | ) 9 | 10 | func uninstall(homeDir string, version string) { 11 | if runtime.GOOS != "windows" { 12 | os.RemoveAll(install.GetMainDir(homeDir, version)) 13 | os.RemoveAll(install.GetMainDir(install.UsrLocal, version)) 14 | os.Remove(path.Join(install.UsrLocalBin, "getML")) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/engine/include/engine/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_FLOAT_HPP_ 9 | #define ENGINE_FLOAT_HPP_ 10 | 11 | namespace engine { 12 | using Float = double; 13 | } // namespace engine 14 | 15 | #endif // ENGINE_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/src/tsindex/Index.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "tsindex/Index.hpp" 9 | 10 | namespace tsindex { 11 | 12 | Index::Index(const IndexParams& _params) : impl_(InMemoryIndex(_params)) {} 13 | 14 | } // namespace tsindex 15 | -------------------------------------------------------------------------------- /mise.toml: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | [env] 9 | _.path = [ 10 | "scripts" 11 | ] 12 | _.python.venv = "src/python-api/.venv" 13 | 14 | UV_PROJECT = "{{ config_root }}/src/python-api" 15 | 16 | [tools] 17 | "pipx:hatch" = "latest" 18 | uv = "latest" 19 | -------------------------------------------------------------------------------- /src/engine/include/helpers/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef HELPERS_FLOAT_HPP_ 9 | #define HELPERS_FLOAT_HPP_ 10 | 11 | namespace helpers { 12 | using Float = double; 13 | } // namespace helpers 14 | 15 | #endif // HELPERS_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/io/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef IO_INT_HPP_ 9 | #define IO_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace io { 14 | using Int = std::int32_t; 15 | } // namespace io 16 | 17 | #endif // IO_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/metrics/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef METRICS_FLOAT_HPP_ 9 | #define METRICS_FLOAT_HPP_ 10 | 11 | namespace metrics { 12 | using Float = double; 13 | } // namespace metrics 14 | 15 | #endif // METRICS_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/tsindex/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef TSINDEX_FLOAT_HPP_ 9 | #define TSINDEX_FLOAT_HPP_ 10 | 11 | namespace tsindex { 12 | using Float = double; 13 | } // namespace tsindex 14 | 15 | #endif // TSINDEX_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /benchmarks/benchmarks/demo/print_time_taken.py: -------------------------------------------------------------------------------- 1 | def _print_time_taken(begin, end): 2 | seconds = end - begin 3 | 4 | hours = int(seconds / 3600) 5 | seconds -= float(hours * 3600) 6 | 7 | minutes = int(seconds / 60) 8 | seconds -= float(minutes * 60) 9 | 10 | seconds = round(seconds, 6) 11 | 12 | print("Time taken: " + str(hours) + "h:" + str(minutes) + "m:" + str(seconds)) 13 | 14 | print("") 15 | -------------------------------------------------------------------------------- /src/engine/include/strings/strings.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef STRINGS_STRINGS_HPP_ 9 | #define STRINGS_STRINGS_HPP_ 10 | 11 | #include "strings/String.hpp" 12 | #include "strings/StringHasher.hpp" 13 | 14 | #endif // STRINGS_STRINGS_HPP_ 15 | -------------------------------------------------------------------------------- /src/engine/src/commands/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | BooleanColumnView.cpp 5 | ColumnCommand.cpp 6 | Command.cpp 7 | DatabaseCommand.cpp 8 | DataFrameCommand.cpp 9 | DataModel.cpp 10 | Fingerprint.cpp 11 | FloatColumnOrFloatColumnView.cpp 12 | PipelineCommand.cpp 13 | ProjectCommand.cpp 14 | Roles.cpp 15 | StringColumnOrStringColumnView.cpp 16 | ViewCommand.cpp 17 | ) 18 | -------------------------------------------------------------------------------- /src/engine/include/commands/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_FLOAT_HPP_ 9 | #define COMMANDS_FLOAT_HPP_ 10 | 11 | namespace commands { 12 | using Float = double; 13 | } // namespace commands 14 | 15 | #endif // COMMANDS_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/database/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef DATABASE_FLOAT_HPP_ 9 | #define DATABASE_FLOAT_HPP_ 10 | 11 | namespace database { 12 | using Float = double; 13 | } // namespace database 14 | 15 | #endif // DATABASE_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_FLOAT_HPP_ 9 | #define FASTPROP_FLOAT_HPP_ 10 | 11 | namespace fastprop { 12 | using Float = double; 13 | } // namespace fastprop 14 | 15 | #endif // FASTPROP_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/transpilation/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef SQL_FLOAT_HPP_ 9 | #define SQL_FLOAT_HPP_ 10 | 11 | namespace transpilation { 12 | using Float = double; 13 | } // namespace transpilation 14 | 15 | #endif // SQL_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/package-build-imports/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "engine": { 3 | "port": 1708 4 | }, 5 | "monitor": { 6 | "allowPushNotifications": true, 7 | "allowRemoteIPs": false, 8 | "launchBrowser": true, 9 | "log": false, 10 | "httpPort": 1709, 11 | "proxyUrl": "", 12 | "tcpPort": 1711 13 | }, 14 | "inMemory": true, 15 | "projectDirectory": "../projects/" 16 | } 17 | -------------------------------------------------------------------------------- /src/engine/include/commands/commands.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_COMMANDS_HPP_ 9 | #define COMMANDS_COMMANDS_HPP_ 10 | 11 | #include "commands/BasicCommand.hpp" 12 | #include "commands/Command.hpp" 13 | 14 | #endif // COMMANDS_COMMANDS_HPP_ 15 | -------------------------------------------------------------------------------- /src/engine/include/logging/logging.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef LOGGING_LOGGING_HPP_ 9 | #define LOGGING_LOGGING_HPP_ 10 | 11 | #include "logging/AbstractLogger.hpp" 12 | #include "logging/ProgressLogger.hpp" 13 | 14 | #endif // LOGGING_LOGGING_HPP_ 15 | -------------------------------------------------------------------------------- /src/engine/include/containers/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef CONTAINERS_FLOAT_HPP_ 9 | #define CONTAINERS_FLOAT_HPP_ 10 | 11 | namespace containers { 12 | using Float = double; 13 | } // namespace containers 14 | 15 | #endif // CONTAINERS_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/engine/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_INT_HPP_ 9 | #define ENGINE_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace engine { 14 | using Int = std::int32_t; 15 | } // namespace engine 16 | 17 | #endif // ENGINE_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/metrics/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef METRICS_INT_HPP_ 9 | #define METRICS_INT_HPP_ 10 | 11 | #include 12 | namespace metrics { 13 | using Int = std::int32_t; 14 | } // namespace metrics 15 | 16 | #endif // METRICS_INT_HPP_ 17 | -------------------------------------------------------------------------------- /src/engine/include/optimizers/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef OPTIMIZERS_FLOAT_HPP_ 9 | #define OPTIMIZERS_FLOAT_HPP_ 10 | 11 | namespace optimizers { 12 | using Float = double; 13 | } // namespace optimizers 14 | 15 | #endif // OPTIMIZERS_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/predictors/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef PREDICTORS_FLOAT_HPP_ 9 | #define PREDICTORS_FLOAT_HPP_ 10 | 11 | namespace predictors { 12 | using Float = double; 13 | } // namespace predictors 14 | 15 | #endif // PREDICTORS_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/textmining/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef TEXTMINING_FLOAT_HPP_ 9 | #define TEXTMINING_FLOAT_HPP_ 10 | 11 | namespace textmining { 12 | using Float = double; 13 | } // namespace textmining 14 | 15 | #endif // TEXTMINING_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/cmd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import "encoding/json" 11 | 12 | type cmd struct { 13 | Body json.RawMessage `json:"body_"` 14 | 15 | Project string `json:"project_"` 16 | 17 | Type string `json:"type_"` 18 | } 19 | -------------------------------------------------------------------------------- /src/python-api/getml/data/columns/format.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """Format the column""" 10 | 11 | from getml.utilities.formatting import _ColumnFormatter 12 | 13 | 14 | def _format(self): 15 | formatted = _ColumnFormatter(self) 16 | return formatted 17 | -------------------------------------------------------------------------------- /src/engine/include/engine/ULong.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_ULONG_HPP_ 9 | #define ENGINE_ULONG_HPP_ 10 | 11 | #include 12 | namespace engine { 13 | using ULong = std::uint64_t; 14 | } // namespace engine 15 | 16 | #endif // ENGINE_ULONG_HPP_ 17 | -------------------------------------------------------------------------------- /src/engine/include/engine/srv/srv.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_SRV_SRV_HPP_ 9 | #define ENGINE_SRV_SRV_HPP_ 10 | 11 | #include "engine/srv/RequestHandler.hpp" 12 | #include "engine/srv/ServerConnectionFactoryImpl.hpp" 13 | 14 | #endif // ENGINE_SRV_SRV_HPP_ 15 | -------------------------------------------------------------------------------- /src/engine/include/helpers/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef HELPERS_INT_HPP_ 9 | #define HELPERS_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace helpers { 14 | using Int = std::int32_t; 15 | } // namespace helpers 16 | 17 | #endif // HELPERS_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/tsindex/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef TSINDEX_INT_HPP_ 9 | #define TSINDEX_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace tsindex { 14 | using Int = std::int32_t; 15 | } // namespace tsindex 16 | 17 | #endif // TSINDEX_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/commands/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_INT_HPP_ 9 | #define COMMANDS_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace commands { 14 | using Int = std::int32_t; 15 | } // namespace commands 16 | 17 | #endif // COMMANDS_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/database/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef DATABASE_INT_HPP_ 9 | #define DATABASE_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace database { 14 | using Int = std::int32_t; 15 | } // namespace database 16 | 17 | #endif // DATABASE_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_INT_HPP_ 9 | #define FASTPROP_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace fastprop { 14 | using Int = std::int32_t; 15 | } // namespace fastprop 16 | 17 | #endif // FASTPROP_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/fct/fct.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FCT_FCT_HPP_ 9 | #define FCT_FCT_HPP_ 10 | 11 | #include "fct/AccessIterator.hpp" 12 | #include "fct/IotaIterator.hpp" 13 | #include "fct/Range.hpp" 14 | #include "fct/compose.hpp" 15 | 16 | #endif // FCT_FCT_HPP_ 17 | -------------------------------------------------------------------------------- /src/engine/include/tsindex/tsindex.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef CONTAINERS_TSINDEX_TSINDEX_HPP_ 9 | #define CONTAINERS_TSINDEX_TSINDEX_HPP_ 10 | 11 | #include "tsindex/Index.hpp" 12 | #include "tsindex/IndexParams.hpp" 13 | 14 | #endif // CONTAINERS_TSINDEX_TSINDEX_HPP_ 15 | -------------------------------------------------------------------------------- /src/engine/include/communication/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMUNICATION_FLOAT_HPP_ 9 | #define COMMUNICATION_FLOAT_HPP_ 10 | 11 | namespace communication { 12 | using Float = double; 13 | } // namespace communication 14 | 15 | #endif // COMMUNICATION_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/enums/enums.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_ENUMS_ENUMS_HPP_ 9 | #define FASTPROP_ENUMS_ENUMS_HPP_ 10 | 11 | #include "fastprop/enums/Aggregation.hpp" 12 | #include "fastprop/enums/DataUsed.hpp" 13 | 14 | #endif // FASTPROP_ENUMS_ENUMS_HPP_ 15 | -------------------------------------------------------------------------------- /src/engine/include/predictors/predictors.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef PREDICTORS_PREDICTORS_HPP_ 9 | #define PREDICTORS_PREDICTORS_HPP_ 10 | 11 | #include "predictors/Predictor.hpp" 12 | #include "predictors/PredictorParser.hpp" 13 | 14 | #endif // PREDICTORS_PREDICTORS_HPP_ 15 | -------------------------------------------------------------------------------- /src/getml-app/src/install/FileExists.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package install 9 | 10 | import "os" 11 | 12 | // FileExists checks whether a file exists. 13 | func FileExists(name string) bool { 14 | 15 | _, err := os.Stat(name) 16 | 17 | return !os.IsNotExist(err) 18 | } 19 | -------------------------------------------------------------------------------- /src/engine/include/containers/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef CONTAINERS_INT_HPP_ 9 | #define CONTAINERS_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace containers { 14 | using Int = std::int32_t; 15 | } // namespace containers 16 | 17 | #endif // CONTAINERS_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/optimizers/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef OPTIMIZERS_INT_HPP_ 9 | #define OPTIMIZERS_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace optimizers { 14 | using Int = std::int32_t; 15 | } // namespace optimizers 16 | 17 | #endif // OPTIMIZERS_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/predictors/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef PREDICTORS_INT_HPP_ 9 | #define PREDICTORS_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace predictors { 14 | using Int = std::int32_t; 15 | } // namespace predictors 16 | 17 | #endif // PREDICTORS_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/textmining/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef TEXTMINING_INT_HPP_ 9 | #define TEXTMINING_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace textmining { 14 | using Int = std::int32_t; 15 | } // namespace textmining 16 | 17 | #endif // TEXTMINING_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/python-api/getml/data/columns/repr.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | ASCII representation of the column. 11 | """ 12 | 13 | 14 | def _repr(self): 15 | formatted = self._format() 16 | footer = self._collect_footer_data() 17 | return formatted._render_string(footer=footer) 18 | -------------------------------------------------------------------------------- /src/python-api/getml/data/columns/repr_html.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | """ 9 | HTML representation of the column. 10 | """ 11 | 12 | 13 | def _repr_html(self): 14 | formatted = self._format() 15 | footer = self._collect_footer_data() 16 | return formatted._render_html(footer=footer) 17 | -------------------------------------------------------------------------------- /src/python-api/getml/utilities/templates/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Manages jinja2 templates. 11 | """ 12 | 13 | from jinja2 import Environment, PackageLoader 14 | 15 | loader = PackageLoader("getml", "utilities/templates") 16 | environment = Environment(loader=loader) 17 | -------------------------------------------------------------------------------- /src/engine/include/featurelearners/Float.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FEATURELEARNERS_FLOAT_HPP_ 9 | #define FEATURELEARNERS_FLOAT_HPP_ 10 | 11 | namespace featurelearners { 12 | using Float = double; 13 | } // namespace featurelearners 14 | 15 | #endif // FEATURELEARNERS_FLOAT_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/io/Datatype.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef IO_DATATYPE_HPP_ 9 | #define IO_DATATYPE_HPP_ 10 | 11 | namespace io { 12 | 13 | enum Datatype { double_precision, integer, string, time_stamp, unknown }; 14 | 15 | } // namespace io 16 | 17 | #endif // IO_DATATYPE_HPP_ 18 | -------------------------------------------------------------------------------- /src/getml-app/src/install/UsrLocal.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package install 9 | 10 | // UsrLocal points to the /usr/local/ directory on Linux. 11 | const UsrLocal = "/usr/local" 12 | 13 | // UsrLocal points to the /usr/local/bin/ directory on Linux. 14 | const UsrLocalBin = "/usr/local/bin" 15 | -------------------------------------------------------------------------------- /src/python-api/getml/data/split/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Splits data into a training, testing, validation or other sets. 11 | """ 12 | 13 | from .concat import concat 14 | from .random import random 15 | from .time import time 16 | 17 | __all__ = ("concat", "random", "time") 18 | -------------------------------------------------------------------------------- /src/engine/include/containers/ULong.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef CONTAINERS_ULONG_HPP_ 9 | #define CONTAINERS_ULONG_HPP_ 10 | 11 | #include 12 | 13 | namespace containers { 14 | using ULong = std::uint64_t; 15 | } // namespace containers 16 | 17 | #endif // CONTAINERS_ULONG_HPP_ 18 | -------------------------------------------------------------------------------- /src/package-build-imports/environment.json: -------------------------------------------------------------------------------- 1 | { 2 | "authentication": { 3 | "key": "AIzaSyD5qdERurTk7_rQ-IaAB7lo8IBCISr8hmk", 4 | "refreshToken": "", 5 | "userId": "" 6 | }, 7 | "monitor": { 8 | "eventURL": "https://mp.getml.com/analytics", 9 | "licenseSeedStatic": "-1", 10 | "baseURL": "https://admin.getml.com/api/", 11 | "apiSuite": "suite-v0" 12 | }, 13 | "signature": "2b82e55af86e06c581242bf9126ddd1a820733c027e138da43ac19d386b2ae99" 14 | } 15 | -------------------------------------------------------------------------------- /src/engine/cmake/iwyu.cmake: -------------------------------------------------------------------------------- 1 | find_program(INCLUDE_WHAT_YOU_USE include-what-you-use) 2 | if(INCLUDE_WHAT_YOU_USE) 3 | message( 4 | STATUS 5 | "Found include-what-you-use: ${INCLUDE_WHAT_YOU_USE}. Will be using it to check the code" 6 | ) 7 | set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "${INCLUDE_WHAT_YOU_USE}" CACHE FILEPATH "Path to include-what-you-use executable") 8 | else() 9 | message(STATUS "include-what-you-use not found. Please install it to check the code") 10 | endif() 11 | -------------------------------------------------------------------------------- /src/getml-app/src/printStartMessage.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package main 9 | 10 | func printStartMessage(packageName string) { 11 | 12 | println( 13 | "getML - Automated Feature", 14 | "Learning for Relational Data and Time Series.") 15 | 16 | println("edition: ", packageName) 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/engine/include/communication/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMUNICATION_INT_HPP_ 9 | #define COMMUNICATION_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace communication { 14 | using Int = std::int32_t; 15 | } // namespace communication 16 | 17 | #endif // COMMUNICATION_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/src/metrics/MetricImpl.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "metrics/MetricImpl.hpp" 9 | 10 | namespace metrics { 11 | 12 | MetricImpl::MetricImpl() : MetricImpl(nullptr) {} 13 | 14 | MetricImpl::MetricImpl(multithreading::Communicator* _comm) : comm_(_comm) {} 15 | 16 | } // namespace metrics 17 | -------------------------------------------------------------------------------- /src/python-api/getml/sqlite3/num_words.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Counts the number of words in a textfield. 11 | """ 12 | 13 | from .split_text_field import _split_text_field 14 | 15 | 16 | def _num_words(textfield): 17 | splitted = _split_text_field(textfield) 18 | return len(splitted) 19 | -------------------------------------------------------------------------------- /src/engine/include/communication/ULong.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMUNICATION_ULONG_HPP_ 9 | #define COMMUNICATION_ULONG_HPP_ 10 | 11 | #include 12 | namespace communication { 13 | using ULong = std::uint64_t; 14 | } // namespace communication 15 | 16 | #endif // COMMUNICATION_ULONG_HPP_ 17 | -------------------------------------------------------------------------------- /src/engine/include/featurelearners/Int.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FEATURELEARNERS_INT_HPP_ 9 | #define FEATURELEARNERS_INT_HPP_ 10 | 11 | #include 12 | 13 | namespace featurelearners { 14 | using Int = std::int32_t; 15 | } // namespace featurelearners 16 | 17 | #endif // FEATURELEARNERS_INT_HPP_ 18 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/recvString.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import ( 11 | "io" 12 | ) 13 | 14 | func recvString(conn io.Reader) (string, error) { 15 | 16 | bytes, err := recvBytes(conn) 17 | 18 | if err != nil { 19 | return "", err 20 | } 21 | 22 | return string(bytes), nil 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/engine/include/containers/Roles.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "commands/Roles.hpp" 9 | 10 | #ifndef CONTAINERS_ROLES_HPP_ 11 | #define CONTAINERS_ROLES_HPP_ 12 | 13 | namespace containers { 14 | 15 | using Roles = commands::Roles; 16 | 17 | } // namespace containers 18 | 19 | #endif // CONTAINERS_ROLES_HPP_ 20 | -------------------------------------------------------------------------------- /src/engine/include/io/CSVSniffer.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef IO_CSVSNIFFER_HPP_ 9 | #define IO_CSVSNIFFER_HPP_ 10 | 11 | #include "io/CSVReader.hpp" 12 | #include "io/Sniffer.hpp" 13 | 14 | namespace io { 15 | using CSVSniffer = Sniffer; 16 | } // namespace io 17 | 18 | #endif // IO_CSVSNIFFER_HPP_ 19 | -------------------------------------------------------------------------------- /src/engine/src/database/DatabaseReader.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "database/DatabaseReader.hpp" 9 | 10 | namespace database { 11 | 12 | DatabaseReader::DatabaseReader(const rfl::Ref& _iterator) 13 | : iterator_(_iterator), ncols_(iterator()->colnames().size()) {} 14 | 15 | } // namespace database 16 | -------------------------------------------------------------------------------- /src/engine/src/helpers/IntSet.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "helpers/IntSet.hpp" 9 | 10 | namespace helpers { 11 | 12 | IntSet::IntSet(const size_t _maximum_value) 13 | : already_included_(std::vector(_maximum_value, false)), 14 | maximum_value_(_maximum_value) {} 15 | 16 | } // namespace helpers 17 | -------------------------------------------------------------------------------- /src/getml-app/src/makePackageName.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 The SQLNet Company GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package main 9 | 10 | import ( 11 | "fmt" 12 | "runtime" 13 | ) 14 | 15 | func makePackageName() string { 16 | 17 | packageName := fmt.Sprintf("getml-community-%s-%s-%s", version, runtime.GOARCH, runtime.GOOS) 18 | 19 | return packageName 20 | } 21 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/basicCommand.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import "net" 11 | 12 | type basicCommand struct { 13 | Name string `json:"name_"` 14 | 15 | Type string `json:"type_"` 16 | } 17 | 18 | func (b basicCommand) send(conn *net.TCPConn) error { 19 | return sendCommand(b, conn) 20 | } 21 | -------------------------------------------------------------------------------- /src/python-api/tests/data/test_io_stream.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | 3 | 4 | @pytest.mark.parametrize("df", ["df1", "df2", "df3"], indirect=True) 5 | def test_read_arrow_stream(getml_project, df): 6 | with df.to_arrow_stream() as stream: 7 | assert stream is not None 8 | for batch in stream: 9 | assert batch is not None 10 | assert len(batch) > 0 11 | assert len(batch.column_names) > 0 12 | assert set(batch.column_names) == set(df.columns) 13 | -------------------------------------------------------------------------------- /src/engine/cmake/static_analysis.cmake: -------------------------------------------------------------------------------- 1 | function(prepare_static_analysis) 2 | set(USE_STATIC_ANALYSIS OFF CACHE BOOL "Enable static analysis") 3 | if(NOT USE_STATIC_ANALYSIS) 4 | message(STATUS "Static analysis disabled.") 5 | return() 6 | endif() 7 | 8 | message(STATUS "Static analysis enabled.") 9 | 10 | include(cmake/clang_tidy.cmake) 11 | include(cmake/cppcheck.cmake) 12 | include(cmake/cpplint.cmake) 13 | include(cmake/iwyu.cmake) 14 | 15 | endfunction(prepare_static_analysis) 16 | -------------------------------------------------------------------------------- /src/engine/include/communication/Warning.hpp: -------------------------------------------------------------------------------- 1 | #ifndef COMMUNICATION_WARNING_HPP_ 2 | #define COMMUNICATION_WARNING_HPP_ 3 | 4 | #include 5 | #include 6 | 7 | namespace communication { 8 | 9 | using Warning = rfl::NamedTuple, 10 | rfl::Field<"label_", std::string>, 11 | rfl::Field<"warning_type_", std::string>>; 12 | 13 | } // namespace communication 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /src/engine/include/engine/config/config.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_CONFIG_CONFIG_HPP_ 9 | #define ENGINE_CONFIG_CONFIG_HPP_ 10 | 11 | #include "engine/config/EngineOptions.hpp" 12 | #include "engine/config/MonitorOptions.hpp" 13 | #include "engine/config/Options.hpp" 14 | 15 | #endif // ENGINE_CONFIG_CONFIG_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/src/helpers/StringIterator.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "helpers/StringIterator.hpp" 9 | 10 | namespace helpers { 11 | 12 | StringIterator::StringIterator( 13 | const std::function _func, const size_t _size) 14 | : func_(_func), size_(_size) {} 15 | 16 | } // namespace helpers 17 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/logger.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import ( 11 | "net" 12 | ) 13 | 14 | type logger struct { 15 | c net.Conn 16 | } 17 | 18 | func newLogger(c net.Conn) *logger { 19 | return &logger{c: c} 20 | } 21 | 22 | func (l *logger) log(msg string) { 23 | sendString(l.c, "log: "+msg) 24 | } 25 | -------------------------------------------------------------------------------- /src/engine/include/containers/Schema.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef CONTAINERS_SCHEMA_HPP_ 9 | #define CONTAINERS_SCHEMA_HPP_ 10 | 11 | #include "helpers/Schema.hpp" 12 | 13 | namespace containers { 14 | 15 | using Schema = typename helpers::Schema; 16 | 17 | } // namespace containers 18 | 19 | #endif // CONTAINERS_COLUMN_HPP_ 20 | -------------------------------------------------------------------------------- /src/engine/include/debug/debug.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef DEBUG_DEBUG_HPP_ 9 | #define DEBUG_DEBUG_HPP_ 10 | 11 | #include "debug/Assert.hpp" 12 | #include "debug/StackTrace.hpp" 13 | #include "debug/assert_msg.hpp" 14 | #include "debug/assert_true.hpp" 15 | #include "debug/throw_unless.hpp" 16 | 17 | #endif // DEBUG_DEBUG_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/src/helpers/DataFrameView.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "helpers/DataFrameView.hpp" 9 | 10 | namespace helpers { 11 | 12 | DataFrameView::DataFrameView( 13 | const DataFrame& _df, 14 | const std::shared_ptr>& _rows) 15 | : df_(_df), rows_(_rows) {} 16 | 17 | } // namespace helpers 18 | -------------------------------------------------------------------------------- /src/engine/src/commands/Command.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "commands/Command.hpp" 9 | 10 | #include 11 | 12 | namespace commands { 13 | 14 | Command Command::from_json_obj(const InputVarType& _obj) { 15 | return Command{rfl::json::read(_obj).value()}; 16 | } 17 | 18 | } // namespace commands 19 | -------------------------------------------------------------------------------- /src/engine/src/multithreading/Barrier.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "multithreading/Barrier.hpp" 9 | 10 | namespace multithreading { 11 | 12 | Barrier::Barrier(size_t _num_threads) 13 | : generation_(0), 14 | num_threads_(_num_threads), 15 | num_threads_left_(_num_threads) {} 16 | 17 | } // namespace multithreading 18 | -------------------------------------------------------------------------------- /src/engine/src/memmap/StringVector.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "memmap/StringVector.hpp" 9 | 10 | namespace memmap { 11 | 12 | StringVector::StringVector(const std::shared_ptr &_pool) 13 | : data_(Vector(_pool)), indptr_(Vector(_pool)) { 14 | indptr_.push_back(0); 15 | } 16 | 17 | } // namespace memmap 18 | -------------------------------------------------------------------------------- /src/python-api/getml/utilities/formatting/ellipsis.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | A class with a nice repr for suppressing parameter values. 11 | """ 12 | 13 | 14 | class _Ellipsis(str): 15 | """ 16 | A class with a nice repr for suppressing parameter values. 17 | """ 18 | 19 | def __repr__(self): 20 | return "..." 21 | -------------------------------------------------------------------------------- /src/python-api/getml/version.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | import os 9 | from pathlib import Path 10 | 11 | DEFAULT_VERSION = "0.0.0" 12 | VERSION_FILE = Path(__file__).parent / "VERSION" 13 | 14 | try: 15 | __version__ = VERSION_FILE.read_text().strip() 16 | except FileNotFoundError: 17 | __version__ = os.getenv("GETML_VERSION", DEFAULT_VERSION) 18 | -------------------------------------------------------------------------------- /src/python-api/getml/sqlite3/email_domain.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Extracts the email domain. 11 | """ 12 | 13 | 14 | def _email_domain(textfield): 15 | splitted = textfield.split("@") 16 | 17 | if len(splitted) != 2: 18 | return "" 19 | 20 | if "." not in splitted[1]: 21 | return "" 22 | 23 | return splitted[1] 24 | -------------------------------------------------------------------------------- /src/engine/src/commands/ViewCommand.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "commands/ViewCommand.hpp" 9 | 10 | #include 11 | 12 | namespace commands { 13 | 14 | ViewCommand ViewCommand::from_json_obj(const InputVarType& _obj) { 15 | return ViewCommand{rfl::json::read(_obj).value()}; 16 | } 17 | 18 | } // namespace commands 19 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/marshalCommand.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import "encoding/json" 11 | 12 | // Parses a command 13 | func marshalCommand(command *command) (string, error) { 14 | 15 | cmdStr, err := json.Marshal(command) 16 | 17 | if err != nil { 18 | return "", err 19 | } 20 | 21 | return string(cmdStr), nil 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/engine/include/containers/DataFrameIndex.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef CONTAINERS_DATAFRAMEINDEX_HPP_ 9 | #define CONTAINERS_DATAFRAMEINDEX_HPP_ 10 | 11 | #include "containers/Index.hpp" 12 | 13 | namespace containers { 14 | 15 | using DataFrameIndex = Index; 16 | 17 | } // namespace containers 18 | 19 | #endif // CONTAINERS_DATAFRAMEINDEX_HPP_ 20 | -------------------------------------------------------------------------------- /src/engine/include/predictors/Fingerprint.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef PREDICTORS_FINGERPRINT_HPP_ 9 | #define PREDICTORS_FINGERPRINT_HPP_ 10 | 11 | #include "commands/Fingerprint.hpp" 12 | 13 | namespace predictors { 14 | 15 | using Fingerprint = commands::Fingerprint; 16 | 17 | } // namespace predictors 18 | 19 | #endif // PREDICTORS_FINGERPRINT_HPP_ 20 | -------------------------------------------------------------------------------- /src/engine/src/engine/handlers/ArrowSocketInputStream.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "engine/handlers/ArrowSocketInputStream.hpp" 9 | 10 | namespace engine::handlers { 11 | 12 | ArrowSocketInputStream::ArrowSocketInputStream(Poco::Net::StreamSocket *_socket) 13 | : closed_(false), position_(0), socket_(_socket) {} 14 | 15 | } // namespace engine::handlers 16 | -------------------------------------------------------------------------------- /src/python-api/getml/project/containers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Containers for representing data of the current project. 11 | """ 12 | 13 | from .data_frames import DataFrames 14 | from .hyperopts import Hyperopts 15 | from .pipelines import Pipelines 16 | 17 | __all__ = ( 18 | "DataFrames", 19 | "Hyperopts", 20 | "Pipelines", 21 | ) 22 | -------------------------------------------------------------------------------- /src/engine/src/commands/ColumnCommand.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "commands/ColumnCommand.hpp" 9 | 10 | #include 11 | 12 | namespace commands { 13 | 14 | ColumnCommand ColumnCommand::from_json_obj(const InputVarType& _obj) { 15 | return ColumnCommand{rfl::json::read(_obj).value()}; 16 | } 17 | 18 | } // namespace commands 19 | -------------------------------------------------------------------------------- /src/engine/src/helpers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | ColumnDescription.cpp 5 | DataFrame.cpp 6 | DataFrameView.cpp 7 | FeatureContainer.cpp 8 | Features.cpp 9 | ImportanceMaker.cpp 10 | IntSet.cpp 11 | Macros.cpp 12 | Placeholder.cpp 13 | RowIndexContainer.cpp 14 | Schema.cpp 15 | StringIterator.cpp 16 | StringReplacer.cpp 17 | StringSplitter.cpp 18 | SubroleParser.cpp 19 | TableHolder.cpp 20 | VocabularyContainer.cpp 21 | VocabularyTree.cpp 22 | WordIndexContainer.cpp 23 | ) 24 | -------------------------------------------------------------------------------- /src/python-api/getml/pipeline/sql_string.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Custom str type that holds SQL Source code. 11 | """ 12 | 13 | 14 | class SQLString(str): 15 | """ 16 | A custom string type that handles the representation of SQL code strings. 17 | """ 18 | 19 | def _repr_markdown_(self) -> str: 20 | return "```sql\n" + self + "\n```" 21 | -------------------------------------------------------------------------------- /src/engine/.clang-tidy: -------------------------------------------------------------------------------- 1 | --- 2 | Checks: '*,-fuchsia-*,fuchsia-statically-constructed-objects,-llvmlibc-*,-llvm-header-guard,-altera-*' 3 | WarningsAsErrors: '' 4 | HeaderFileExtensions: 5 | - '' 6 | - h 7 | - hh 8 | - hpp 9 | - hxx 10 | ImplementationFileExtensions: 11 | - c 12 | - cc 13 | - cpp 14 | - cxx 15 | HeaderFilterRegex: '' 16 | ExcludeHeaderFilterRegex: '' 17 | FormatStyle: file 18 | CheckOptions: 19 | misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic: 'true' 20 | ... 21 | 22 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/algorithm/algorithm.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_ALGORITHM_ALGORITHM_HPP_ 9 | #define FASTPROP_ALGORITHM_ALGORITHM_HPP_ 10 | 11 | #include "fastprop/algorithm/FastProp.hpp" 12 | #include "fastprop/algorithm/FitParams.hpp" 13 | #include "fastprop/algorithm/TransformParams.hpp" 14 | 15 | #endif // FASTPROP_ALGORITHM_ALGORITHM_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/predictors/IntFeature.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef PREDICTORS_INTFEATURE_HPP_ 9 | #define PREDICTORS_INTFEATURE_HPP_ 10 | 11 | #include "helpers/Feature.hpp" 12 | #include "predictors/Int.hpp" 13 | 14 | namespace predictors { 15 | using IntFeature = helpers::Feature; 16 | } // namespace predictors 17 | 18 | #endif // PREDICTORS_INTFEATURE_HPP_ 19 | -------------------------------------------------------------------------------- /src/engine/src/commands/ProjectCommand.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "commands/ProjectCommand.hpp" 9 | 10 | #include 11 | 12 | namespace commands { 13 | 14 | ProjectCommand ProjectCommand::from_json_obj(const InputVarType& _obj) { 15 | return ProjectCommand{rfl::json::read(_obj).value()}; 16 | } 17 | 18 | } // namespace commands 19 | -------------------------------------------------------------------------------- /src/python-api/getml/sqlite3/contains.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Checks whether a textfield contains a certain keyword. 11 | """ 12 | 13 | from .split_text_field import _split_text_field 14 | 15 | 16 | def _contains(textfield, keyword): 17 | splitted = _split_text_field(textfield) 18 | k = keyword.lower() 19 | return len(["" for s in splitted if s == k]) 20 | -------------------------------------------------------------------------------- /src/engine/include/metrics/metrics.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef METRICS_METRICS_HPP_ 9 | #define METRICS_METRICS_HPP_ 10 | 11 | #include "metrics/Features.hpp" 12 | #include "metrics/Float.hpp" 13 | #include "metrics/Int.hpp" 14 | #include "metrics/Scorer.hpp" 15 | #include "metrics/Scores.hpp" 16 | #include "metrics/Summarizer.hpp" 17 | 18 | #endif // METRICS_METRICS_HPP_ 19 | -------------------------------------------------------------------------------- /src/engine/src/commands/DatabaseCommand.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "commands/DatabaseCommand.hpp" 9 | 10 | #include 11 | 12 | namespace commands { 13 | 14 | DatabaseCommand DatabaseCommand::from_json_obj(const InputVarType& _obj) { 15 | return DatabaseCommand{rfl::json::read(_obj).value()}; 16 | } 17 | 18 | } // namespace commands 19 | -------------------------------------------------------------------------------- /src/engine/src/commands/PipelineCommand.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "commands/PipelineCommand.hpp" 9 | 10 | #include 11 | 12 | namespace commands { 13 | 14 | PipelineCommand PipelineCommand::from_json_obj(const InputVarType& _obj) { 15 | return PipelineCommand{rfl::json::read(_obj).value()}; 16 | } 17 | 18 | } // namespace commands 19 | -------------------------------------------------------------------------------- /src/engine/src/engine/config/EngineOptions.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "engine/config/EngineOptions.hpp" 9 | 10 | namespace engine::config { 11 | 12 | EngineOptions::EngineOptions(const ReflectionType& _obj) 13 | : in_memory_(IN_MEMORY), port_(_obj.get<"port">()) {} 14 | 15 | EngineOptions::EngineOptions() : port_(1708) {} 16 | 17 | } // namespace engine::config 18 | -------------------------------------------------------------------------------- /src/engine/src/engine/handlers/ArrowSocketOutputStream.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "engine/handlers/ArrowSocketOutputStream.hpp" 9 | 10 | namespace engine::handlers { 11 | 12 | ArrowSocketOutputStream::ArrowSocketOutputStream( 13 | Poco::Net::StreamSocket *_socket) 14 | : closed_(false), position_(0), socket_(_socket) {} 15 | 16 | } // namespace engine::handlers 17 | -------------------------------------------------------------------------------- /src/getml-app/src/commands/makeInstallCommand.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package commands 9 | 10 | import ( 11 | "flag" 12 | "getML/config" 13 | ) 14 | 15 | func makeInstallCommand(commandLine *config.CommandLine) *flag.FlagSet { 16 | 17 | cmd := flag.NewFlagSet("install", flag.ExitOnError) 18 | 19 | addHomeDirFlag(cmd, commandLine) 20 | 21 | return cmd 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/engine/include/engine/engine.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_ENGINE_HPP_ 9 | #define ENGINE_ENGINE_HPP_ 10 | 11 | #include "communication/communication.hpp" 12 | #include "containers/containers.hpp" 13 | #include "engine/handlers/handlers.hpp" 14 | #include "engine/srv/srv.hpp" 15 | #include "featurelearners/featurelearners.hpp" 16 | 17 | #endif // ENGINE_ENGINE_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/src/commands/DataFrameCommand.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "commands/DataFrameCommand.hpp" 9 | 10 | #include 11 | 12 | namespace commands { 13 | 14 | DataFrameCommand DataFrameCommand::from_json_obj(const InputVarType& _obj) { 15 | return DataFrameCommand{rfl::json::read(_obj).value()}; 16 | } 17 | 18 | } // namespace commands 19 | -------------------------------------------------------------------------------- /src/getml-app/src/commands/makeUninstallCommand.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package commands 9 | 10 | import ( 11 | "flag" 12 | "getML/config" 13 | ) 14 | 15 | func makeUninstallCommand(commandLine *config.CommandLine) *flag.FlagSet { 16 | 17 | cmd := flag.NewFlagSet("uninstall", flag.ExitOnError) 18 | 19 | addHomeDirFlag(cmd, commandLine) 20 | 21 | return cmd 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/getml-app/src/install/GetBinDir.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package install 9 | 10 | import ( 11 | "path/filepath" 12 | ) 13 | 14 | // GetBinDir returns the bin directory 15 | // from which we are launching the Engine 16 | // and the Monitor. 17 | func GetBinDir(homeDir string, packageName string) string { 18 | return filepath.Join(GetMainDir(homeDir, packageName), "bin") 19 | } 20 | -------------------------------------------------------------------------------- /src/engine/include/predictors/FloatFeature.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef PREDICTORS_FLOATFEATURE_HPP_ 9 | #define PREDICTORS_FLOATFEATURE_HPP_ 10 | 11 | #include "helpers/Feature.hpp" 12 | #include "predictors/Float.hpp" 13 | 14 | namespace predictors { 15 | using FloatFeature = helpers::Feature; 16 | } // namespace predictors 17 | 18 | #endif // PREDICTORS_FLOATFEATURE_HPP_ 19 | -------------------------------------------------------------------------------- /src/engine/src/optimizers/BFGS.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "optimizers/BFGS.hpp" 9 | 10 | namespace optimizers { 11 | 12 | BFGS::BFGS(const Float _learning_rate, const size_t _size) 13 | : B_inv_(Eigen::MatrixXd::Identity(_size, _size)), 14 | first_iteration_(true), 15 | learning_rate_(_learning_rate), 16 | size_(_size) {} 17 | 18 | } // namespace optimizers 19 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/recvCmd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import ( 11 | "encoding/json" 12 | "net" 13 | ) 14 | 15 | func recvCmd(c net.Conn) (cmd, error) { 16 | 17 | cmd := cmd{} 18 | 19 | cmdStr, err := recvString(c) 20 | 21 | if err != nil { 22 | return cmd, err 23 | } 24 | 25 | err = json.Unmarshal([]byte(cmdStr), &cmd) 26 | 27 | return cmd, err 28 | } 29 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/subfeatures/subfeatures.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_SUBFEATURES_SUBFEATURES_HPP_ 9 | #define FASTPROP_SUBFEATURES_SUBFEATURES_HPP_ 10 | 11 | #include "fastprop/subfeatures/FastPropContainer.hpp" 12 | #include "fastprop/subfeatures/Maker.hpp" 13 | #include "fastprop/subfeatures/MakerParams.hpp" 14 | 15 | #endif // FASTPROP_SUBFEATURES_SUBFEATURES_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/helpers/MemoryMappedIndex.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef HELPERS_MEMORYMAPPEDINDEX_HPP_ 9 | #define HELPERS_MEMORYMAPPEDINDEX_HPP_ 10 | 11 | #include "helpers/Int.hpp" 12 | #include "memmap/Index.hpp" 13 | 14 | namespace helpers { 15 | 16 | using MemoryMappedIndex = memmap::Index; 17 | 18 | } // namespace helpers 19 | 20 | #endif // HELPERS_MEMORYMAPPEDINDEX_HPP_ 21 | -------------------------------------------------------------------------------- /src/engine/include/metrics/Features.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef METRICS_FEATURES_HPP_ 9 | #define METRICS_FEATURES_HPP_ 10 | 11 | #include "helpers/Features.hpp" 12 | #include "metrics/Float.hpp" 13 | 14 | #include 15 | 16 | namespace metrics { 17 | using Features = std::vector>; 18 | } // namespace metrics 19 | 20 | #endif // METRICS_FEATURES_HPP_ 21 | -------------------------------------------------------------------------------- /src/python-api/getml/data/columns/to_numpy.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Transform column to a numpy array. 11 | """ 12 | 13 | from typing import Any 14 | 15 | import numpy as np 16 | 17 | from .to_arrow import _to_arrow 18 | 19 | 20 | def _to_numpy(self: Any) -> np.ndarray: 21 | """ 22 | Transform column to numpy.ndarray 23 | """ 24 | return _to_arrow(self).to_numpy() 25 | -------------------------------------------------------------------------------- /src/engine/include/engine/pipelines/Purpose.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_PIPELINES_PURPOSE_HPP_ 9 | #define ENGINE_PIPELINES_PURPOSE_HPP_ 10 | 11 | #include 12 | 13 | namespace engine { 14 | namespace pipelines { 15 | 16 | using Purpose = rfl::Literal<"feature_selectors_", "predictors_">; 17 | 18 | } // namespace pipelines 19 | } // namespace engine 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /src/engine/include/engine/utils/Endianness.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_UTILS_ENDIANNESS_HPP_ 9 | #define ENGINE_UTILS_ENDIANNESS_HPP_ 10 | 11 | #include "helpers/Endianness.hpp" 12 | 13 | namespace engine { 14 | namespace utils { 15 | 16 | using Endianness = helpers::Endianness; 17 | 18 | } // namespace utils 19 | } // namespace engine 20 | 21 | #endif // ENGINE_UTILS_ENDIANNESS_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/Index.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_CONTAINERS_INDEX_HPP_ 9 | #define FASTPROP_CONTAINERS_INDEX_HPP_ 10 | 11 | #include "helpers/Index.hpp" 12 | 13 | namespace fastprop { 14 | namespace containers { 15 | 16 | using Index = helpers::Index; 17 | 18 | } // namespace containers 19 | } // namespace fastprop 20 | 21 | #endif // FASTPROP_CONTAINERS_INDEX_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/include/predictors/PredictorHyperparams.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef PREDICTORS_PREDICTORHYPERPARAMS_HPP_ 9 | #define PREDICTORS_PREDICTORHYPERPARAMS_HPP_ 10 | 11 | #include "commands/Predictor.hpp" 12 | 13 | namespace predictors { 14 | 15 | using PredictorHyperparams = commands::Predictor; 16 | 17 | } // namespace predictors 18 | 19 | #endif // ENGINE_PREDICTORS_PREDICTORHYPERPARAMS_HPP_ 20 | -------------------------------------------------------------------------------- /src/engine/include/predictors/XGBoostHyperparams.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef PREDICTORS_XGBOOSTHYPERPARMS_HPP_ 9 | #define PREDICTORS_XGBOOSTHYPERPARMS_HPP_ 10 | 11 | #include "commands/XGBoostHyperparams.hpp" 12 | 13 | namespace predictors { 14 | 15 | using XGBoostHyperparams = commands::XGBoostHyperparams; 16 | 17 | } // namespace predictors 18 | 19 | #endif // PREDICTORS_XGBOOSTHYPERPARMS_HPP_ 20 | -------------------------------------------------------------------------------- /src/getml-app/src/config/Load.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package config 9 | 10 | import ( 11 | "path/filepath" 12 | ) 13 | 14 | // Load loads the config.json. 15 | func Load(fname string) Config { 16 | 17 | conf := Config{} 18 | 19 | fname, err := filepath.Abs(fname) 20 | 21 | if err != nil { 22 | panic(err.Error()) 23 | } 24 | 25 | conf.GetFromFile(fname) 26 | 27 | return conf 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/engine/include/optimizers/optimizers.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef OPTIMIZERS_OPTIMIZERS_HPP_ 9 | #define OPTIMIZERS_OPTIMIZERS_HPP_ 10 | 11 | #include "optimizers/AdaGrad.hpp" 12 | #include "optimizers/Adam.hpp" 13 | #include "optimizers/BFGS.hpp" 14 | #include "optimizers/Float.hpp" 15 | #include "optimizers/Int.hpp" 16 | #include "optimizers/Optimizer.hpp" 17 | 18 | #endif // OPTIMIZERS_OPTIMIZERS_HPP_ 19 | -------------------------------------------------------------------------------- /src/engine/src/optimizers/AdaGrad.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "optimizers/AdaGrad.hpp" 9 | 10 | namespace optimizers { 11 | 12 | AdaGrad::AdaGrad(const Float _learning_rate, const Float _offset, 13 | const size_t _size) 14 | : learning_rate_(_learning_rate), 15 | offset_(_offset), 16 | sum_squared_gradients_(std::vector(_size)) {} 17 | 18 | } // namespace optimizers 19 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/sendCommand.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import ( 11 | "net" 12 | ) 13 | 14 | func sendCommand(command command, conn *net.TCPConn) error { 15 | 16 | cmd, err := marshalCommand(&command) 17 | 18 | if err != nil { 19 | return err 20 | } 21 | 22 | err = sendString(conn, cmd) 23 | 24 | if err != nil { 25 | return err 26 | } 27 | 28 | return nil 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/python-api/getml/data/columns/unique.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Transform column to numpy array containing unique values 11 | """ 12 | 13 | import numpy as np 14 | 15 | from .to_arrow import _to_arrow 16 | 17 | 18 | def _unique(self) -> np.ndarray: 19 | """ 20 | Transform column to numpy array containing all distinct values. 21 | """ 22 | return _to_arrow(self, unique=True).to_numpy() 23 | -------------------------------------------------------------------------------- /src/engine/include/engine/preprocessors/preprocessors.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_PREPROCESSORS_PREPROCESSORS_HPP_ 9 | #define ENGINE_PREPROCESSORS_PREPROCESSORS_HPP_ 10 | 11 | #include "engine/preprocessors/Preprocessor.hpp" 12 | #include "engine/preprocessors/PreprocessorParser.hpp" 13 | #include "engine/preprocessors/data_model_checking.hpp" 14 | 15 | #endif // ENGINE_PREPROCESSORS_PREPROCESSORS_HPP_ 16 | -------------------------------------------------------------------------------- /src/engine/include/engine/utils/NullChecker.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_UTILS_NULLCHECKER_HPP_ 9 | #define ENGINE_UTILS_NULLCHECKER_HPP_ 10 | 11 | #include "helpers/NullChecker.hpp" 12 | 13 | namespace engine { 14 | namespace utils { 15 | 16 | using NullChecker = typename helpers::NullChecker; 17 | 18 | } // namespace utils 19 | } // namespace engine 20 | 21 | #endif // ENGINE_UTILS_NULLCHECKER_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/include/helpers/Index.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef HELPERS_INDEX_HPP_ 9 | #define HELPERS_INDEX_HPP_ 10 | 11 | #include "helpers/InMemoryIndex.hpp" 12 | #include "helpers/MemoryMappedIndex.hpp" 13 | 14 | #include 15 | 16 | namespace helpers { 17 | 18 | using Index = std::variant; 19 | 20 | } // namespace helpers 21 | 22 | #endif // HELPERS_INDEX_HPP_ 23 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/enums/Aggregation.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_ENUMS_AGGREGATION_HPP_ 9 | #define FASTPROP_ENUMS_AGGREGATION_HPP_ 10 | 11 | #include "helpers/enums/Aggregation.hpp" 12 | 13 | namespace fastprop { 14 | namespace enums { 15 | using Aggregation = helpers::enums::Aggregation; 16 | } // namespace enums 17 | } // namespace fastprop 18 | 19 | #endif // FASTPROP_ENUMS_AGGREGATION_HPP_ 20 | -------------------------------------------------------------------------------- /src/engine/include/transpilation/transpilation.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef SQL_SQL_HPP_ 9 | #define SQL_SQL_HPP_ 10 | 11 | #include "transpilation/HumanReadableSQLGenerator.hpp" 12 | #include "transpilation/SQLDialectGenerator.hpp" 13 | #include "transpilation/SQLDialectParser.hpp" 14 | #include "transpilation/SQLGenerator.hpp" 15 | #include "transpilation/TranspilationParams.hpp" 16 | 17 | #endif // SQL_SQL_HPP_ 18 | -------------------------------------------------------------------------------- /src/engine/include/engine/utils/Aggregations.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_UTILS_AGGREGATIONS_HPP_ 9 | #define ENGINE_UTILS_AGGREGATIONS_HPP_ 10 | 11 | #include "helpers/Aggregations.hpp" 12 | 13 | namespace engine { 14 | namespace utils { 15 | 16 | using Aggregations = typename helpers::Aggregations; 17 | 18 | } // namespace utils 19 | } // namespace engine 20 | 21 | #endif // ENGINE_UTILS_AGGREGATIONS_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/IntSet.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_CONTAINERS_INTSET_HPP_ 9 | #define FASTPROP_CONTAINERS_INTSET_HPP_ 10 | 11 | #include "helpers/IntSet.hpp" 12 | 13 | namespace fastprop { 14 | namespace containers { 15 | 16 | using IntSet = typename helpers::IntSet; 17 | 18 | } // namespace containers 19 | } // namespace fastprop 20 | 21 | #endif // FASTPROP_CONTAINERS_INTSET_HPP_ 22 | -------------------------------------------------------------------------------- /src/getml-app/src/commands/loadConfig.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package commands 9 | 10 | import ( 11 | "getML/config" 12 | "getML/install" 13 | ) 14 | 15 | func loadConfig(forceInstall bool, homeDir string, packageName string) config.Config { 16 | 17 | fname := "./config.json" 18 | 19 | if !forceInstall { 20 | fname = install.GetConfigPath(homeDir, packageName) 21 | } 22 | 23 | return config.Load(fname) 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/sendBytes.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import ( 11 | "bytes" 12 | "encoding/binary" 13 | "io" 14 | ) 15 | 16 | func sendBytes(conn io.Writer, data []byte) error { 17 | length := uint64(len(data)) 18 | 19 | if err := binary.Write(conn, binary.BigEndian, length); err != nil { 20 | return err 21 | } 22 | 23 | _, err := io.Copy(conn, bytes.NewReader(data)) 24 | return err 25 | } 26 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/Features.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_CONTAINERS_FEATURES_HPP_ 9 | #define FASTPROP_CONTAINERS_FEATURES_HPP_ 10 | 11 | #include "helpers/Features.hpp" 12 | 13 | namespace fastprop { 14 | namespace containers { 15 | 16 | using Features = helpers::Features; 17 | 18 | } // namespace containers 19 | } // namespace fastprop 20 | 21 | #endif // FASTPROP_CONTAINERS_FEATURES_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | Language: Cpp 3 | BasedOnStyle: Google 4 | IncludeBlocks: Regroup 5 | IncludeCategories: 6 | - Regex: '^<.*\.h(pp)?>' 7 | Priority: 2 8 | SortPriority: 0 9 | CaseSensitive: false 10 | - Regex: '^<.*' 11 | Priority: 3 12 | SortPriority: 0 13 | CaseSensitive: false 14 | - Regex: '.*' 15 | Priority: 1 16 | SortPriority: 0 17 | CaseSensitive: false 18 | IncludeIsMainRegex: '(([-_](test|unittest))|Test)?$' 19 | IncludeIsMainSourceRegex: '' 20 | SortIncludes: CaseSensitive 21 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/algorithm/FitParams.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_ENSEMBLE_FITPARAMS_HPP_ 9 | #define FASTPROP_ENSEMBLE_FITPARAMS_HPP_ 10 | 11 | #include "helpers/FitParams.hpp" 12 | 13 | namespace fastprop { 14 | namespace algorithm { 15 | 16 | using FitParams = typename helpers::FitParams; 17 | 18 | } // namespace algorithm 19 | } // namespace fastprop 20 | 21 | #endif // FASTPROP_ENSEMBLE_FITPARAMS_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/include/memmap/memmap.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef MEMMAP_MEMMAP_HPP_ 9 | #define MEMMAP_MEMMAP_HPP_ 10 | 11 | #include "memmap/BTree.hpp" 12 | #include "memmap/BTreeNode.hpp" 13 | #include "memmap/Index.hpp" 14 | #include "memmap/Page.hpp" 15 | #include "memmap/Pool.hpp" 16 | #include "memmap/StringVector.hpp" 17 | #include "memmap/Vector.hpp" 18 | #include "memmap/VectorImpl.hpp" 19 | 20 | #endif // MEMMAP_MEMMAP_HPP_ 21 | -------------------------------------------------------------------------------- /src/getml-app/src/install/GetConfigPath.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package install 9 | 10 | import ( 11 | "path/filepath" 12 | ) 13 | 14 | // GetConfigPath returns the where the config.json 15 | // is supposed to be, if the software has been installed. 16 | func GetConfigPath(homeDir string, packageName string) string { 17 | 18 | binDir := filepath.Join(GetMainDir(homeDir, packageName), "config.json") 19 | 20 | return binDir 21 | } 22 | -------------------------------------------------------------------------------- /src/getml-app/src/install/filesExists.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package install 9 | 10 | // filesExists takes a list of filenames and makes sure 11 | // that they all exist. 12 | func filesExists(filenames []string) bool { 13 | 14 | allFilesExist := true 15 | 16 | for _, name := range filenames { 17 | 18 | if !FileExists(name) { 19 | allFilesExist = false 20 | break 21 | } 22 | } 23 | 24 | return allFilesExist 25 | } 26 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/isAlive.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | func isAlive(port int) (bool, error) { 11 | 12 | conn, err := createConnectionToEngine(port) 13 | 14 | if err != nil { 15 | return false, err 16 | } 17 | 18 | defer conn.Close() 19 | 20 | err = basicCommand{Name: "", Type: "is_alive"}.send(conn) 21 | 22 | if err != nil { 23 | return false, nil 24 | } 25 | 26 | return true, nil 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/engine/include/containers/CategoricalFeatures.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef CONTAINERS_CATEGORICALFEATURES_HPP_ 9 | #define CONTAINERS_CATEGORICALFEATURES_HPP_ 10 | 11 | #include "containers/Int.hpp" 12 | #include "helpers/Feature.hpp" 13 | 14 | namespace containers { 15 | 16 | using CategoricalFeatures = std::vector>; 17 | 18 | } // namespace containers 19 | 20 | #endif // CONTAINERS_CATEGORICALFEATURES_HPP_ 21 | -------------------------------------------------------------------------------- /src/engine/include/featurelearners/featurelearners.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FEATURELEARNERS_FEATURELEARNERS_HPP_ 9 | #define FEATURELEARNERS_FEATURELEARNERS_HPP_ 10 | 11 | #include "featurelearners/AbstractFeatureLearner.hpp" 12 | #include "featurelearners/FeatureLearnerParams.hpp" 13 | #include "featurelearners/FitParams.hpp" 14 | #include "featurelearners/TransformParams.hpp" 15 | 16 | #endif // FEATURELEARNERS_FEATURELEARNERS_HPP_ 17 | -------------------------------------------------------------------------------- /src/engine/include/io/io.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef IO_IO_HPP_ 9 | #define IO_IO_HPP_ 10 | 11 | #include "io/CSVReader.hpp" 12 | #include "io/CSVSniffer.hpp" 13 | #include "io/CSVWriter.hpp" 14 | #include "io/Datatype.hpp" 15 | #include "io/Float.hpp" 16 | #include "io/Int.hpp" 17 | #include "io/Parser.hpp" 18 | #include "io/Reader.hpp" 19 | #include "io/Sniffer.hpp" 20 | #include "io/StatementMaker.hpp" 21 | 22 | #endif // IO_IO_HPP_ 23 | -------------------------------------------------------------------------------- /src/python-api/getml/data/columns/length.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Returns the length of the column 11 | """ 12 | 13 | import numpy as np 14 | 15 | 16 | def _length(col) -> int: 17 | length = col.length 18 | if isinstance(length, str): 19 | raise ValueError( 20 | "The length is either infinite or cannot " 21 | + "be known before fully parsing the ColumnView!" 22 | ) 23 | return length 24 | -------------------------------------------------------------------------------- /src/engine/include/engine/utils/utils.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_UTILS_UTILS_HPP_ 9 | #define ENGINE_UTILS_UTILS_HPP_ 10 | 11 | #include "engine/utils/Aggregations.hpp" 12 | #include "engine/utils/Endianness.hpp" 13 | #include "engine/utils/Getter.hpp" 14 | #include "engine/utils/NullChecker.hpp" 15 | #include "engine/utils/SQLDependencyTracker.hpp" 16 | #include "engine/utils/Time.hpp" 17 | 18 | #endif // ENGINE_UTILS_UTILS_HPP_ 19 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/Column.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_CONTAINERS_COLUMN_HPP_ 9 | #define FASTPROP_CONTAINERS_COLUMN_HPP_ 10 | 11 | #include "helpers/Column.hpp" 12 | 13 | namespace fastprop { 14 | namespace containers { 15 | 16 | template 17 | using Column = helpers::Column; 18 | 19 | } // namespace containers 20 | } // namespace fastprop 21 | 22 | #endif // FASTPROP_CONTAINERS_COLUMN_HPP_ 23 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/DataFrame.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_CONTAINERS_DATAFRAME_HPP_ 9 | #define FASTPROP_CONTAINERS_DATAFRAME_HPP_ 10 | 11 | #include "helpers/DataFrame.hpp" 12 | 13 | namespace fastprop { 14 | namespace containers { 15 | 16 | using DataFrame = typename helpers::DataFrame; 17 | 18 | } // namespace containers 19 | } // namespace fastprop 20 | 21 | #endif // FASTPROP_CONTAINERS_DATAFRAME_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/src/helpers/Features.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "helpers/Features.hpp" 9 | 10 | namespace helpers { 11 | 12 | Features::Features(const std::vector>& _vec) 13 | : vec_(_vec) {} 14 | 15 | Features::Features(const size_t _nrows, const size_t _ncols, 16 | std::optional _temp_dir) 17 | : Features(make_vec(_nrows, _ncols, _temp_dir)) {} 18 | 19 | } // namespace helpers 20 | -------------------------------------------------------------------------------- /src/engine/include/containers/DataFrameContent.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef CONTAINERS_DATAFRAMECONTENT_HPP_ 9 | #define CONTAINERS_DATAFRAMECONTENT_HPP_ 10 | 11 | #include "database/TableContent.hpp" 12 | 13 | namespace containers { 14 | 15 | /// A format that is compatible with the data.tables API. 16 | using DataFrameContent = database::TableContent; 17 | 18 | } // namespace containers 19 | 20 | #endif // CONTAINERS_DATAFRAMECONTENT_HPP_ 21 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/algorithm/TableHolder.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_ENSEMBLE_TABLEHOLDER_HPP_ 9 | #define FASTPROP_ENSEMBLE_TABLEHOLDER_HPP_ 10 | 11 | #include "helpers/TableHolder.hpp" 12 | 13 | namespace fastprop { 14 | namespace algorithm { 15 | 16 | using TableHolder = typename helpers::TableHolder; 17 | 18 | } // namespace algorithm 19 | } // namespace fastprop 20 | 21 | #endif // FASTPROP_ENSEMBLE_TABLEHOLDER_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/Placeholder.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_ENSEMBLE_PLACEHOLDER_HPP_ 9 | #define FASTPROP_ENSEMBLE_PLACEHOLDER_HPP_ 10 | 11 | #include "helpers/Placeholder.hpp" 12 | 13 | namespace fastprop { 14 | namespace containers { 15 | 16 | using Placeholder = typename helpers::Placeholder; 17 | 18 | } // namespace containers 19 | } // namespace fastprop 20 | 21 | #endif // FASTPROP_ENSEMBLE_PLACEHOLDER_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/include/helpers/InMemoryIndex.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef HELPERS_INMEMORYINDEX_HPP_ 9 | #define HELPERS_INMEMORYINDEX_HPP_ 10 | 11 | #include "helpers/Int.hpp" 12 | 13 | #include 14 | #include 15 | #include 16 | 17 | namespace helpers { 18 | 19 | using InMemoryIndex = std::unordered_map>; 20 | 21 | } // namespace helpers 22 | 23 | #endif // HELPERS_INMEMORYINDEX_HPP_ 24 | -------------------------------------------------------------------------------- /src/engine/src/multithreading/Communicator.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "multithreading/Communicator.hpp" 9 | 10 | namespace multithreading { 11 | 12 | Communicator::Communicator(size_t _num_threads) 13 | : barrier_(_num_threads), 14 | checkpoint_(true), 15 | main_thread_id_(std::this_thread::get_id()), 16 | num_threads_(_num_threads), 17 | num_threads_left_(_num_threads) {} 18 | 19 | } // namespace multithreading 20 | -------------------------------------------------------------------------------- /src/engine/src/communication/SocketLogger.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "communication/SocketLogger.hpp" 9 | 10 | namespace communication { 11 | 12 | SocketLogger::SocketLogger( 13 | const std::shared_ptr& _logger, 14 | const bool _silent, Poco::Net::StreamSocket* _socket) 15 | : logger_(_logger), silent_(_silent), socket_(_socket) { 16 | assert_true(logger_); 17 | } 18 | 19 | } // namespace communication 20 | -------------------------------------------------------------------------------- /src/getml-app/src/stopExistingProcess.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package main 9 | 10 | import ( 11 | "getML/tcp" 12 | ) 13 | 14 | func stopExistingProcess(tcpPort int) error { 15 | 16 | cmd := `{"type_":"shutdownlocal"}` 17 | 18 | conn, err := createConnectionToEngine(tcpPort) 19 | 20 | if err != nil { 21 | return err 22 | } 23 | 24 | err = tcp.SendString(conn, cmd) 25 | 26 | if err != nil { 27 | return err 28 | } 29 | 30 | return nil 31 | } 32 | -------------------------------------------------------------------------------- /src/python-api/getml/sqlite3/get_word.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Returns the word indicated by i from the textfield. 11 | Note that this begins with 1, following the SQLite 12 | convention. 13 | """ 14 | 15 | from .split_text_field import _split_text_field 16 | 17 | 18 | def _get_word(textfield, i): 19 | splitted = _split_text_field(textfield) 20 | if i > 0 and i - 1 < len(splitted): 21 | return splitted[i - 1] 22 | return None 23 | -------------------------------------------------------------------------------- /src/engine/include/containers/NumericalFeatures.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef CONTAINERS_NUMERICALFEATURES_HPP_ 9 | #define CONTAINERS_NUMERICALFEATURES_HPP_ 10 | 11 | #include "containers/Float.hpp" 12 | #include "helpers/Feature.hpp" 13 | 14 | #include 15 | 16 | namespace containers { 17 | 18 | using NumericalFeatures = std::vector>; 19 | 20 | } // namespace containers 21 | 22 | #endif // CONTAINERS_NUMERICALFEATURES_HPP_ 23 | -------------------------------------------------------------------------------- /src/python-api/getml/data/roles/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | from getml.data.roles.roles import ( 9 | categorical, 10 | join_key, 11 | numerical, 12 | target, 13 | text, 14 | time_stamp, 15 | unused_float, 16 | unused_string, 17 | ) 18 | 19 | __all__ = ( 20 | "categorical", 21 | "join_key", 22 | "numerical", 23 | "target", 24 | "text", 25 | "time_stamp", 26 | "unused_float", 27 | "unused_string", 28 | ) 29 | -------------------------------------------------------------------------------- /runtime/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | getml: 3 | image: getml/getml 4 | environment: 5 | GETML_ALLOW_PUSH_NOTIFICATIONS: false 6 | GETML_ALLOW_REMOTE_IPS: false 7 | GETML_HOME_DIRECTORY: /home/getml 8 | GETML_HTTP_PORT: 1711 9 | GETML_IN_MEMORY: true 10 | GETML_INSTALL: false 11 | GETML_LAUNCH_BROWSER: false 12 | GETML_LOG: false 13 | GETML_PROJECT_DIRECTORY: /home/getml/projects 14 | GETML_PROXY_URL: "" 15 | GETML_TOKEN: "" 16 | ports: 17 | - "1708-1733:11708-11733" 18 | volumes: 19 | - getml:/home/getml/ 20 | volumes: 21 | getml: 22 | external: false 23 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/DataFrameView.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_CONTAINERS_DATAFRAMEVIEW_HPP_ 9 | #define FASTPROP_CONTAINERS_DATAFRAMEVIEW_HPP_ 10 | 11 | #include "helpers/DataFrameView.hpp" 12 | 13 | namespace fastprop { 14 | namespace containers { 15 | 16 | using DataFrameView = typename helpers::DataFrameView; 17 | 18 | } // namespace containers 19 | } // namespace fastprop 20 | 21 | #endif // FASTPROP_CONTAINERS_DATAFRAMEVIEW_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/include/predictors/LinearRegressionHyperparams.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef PREDICTORS_LINEARREGRESSIONHYPERPARMAS_HPP_ 9 | #define PREDICTORS_LINEARREGRESSIONHYPERPARMAS_HPP_ 10 | 11 | #include "commands/LinearRegressionHyperparams.hpp" 12 | 13 | namespace predictors { 14 | 15 | using LinearRegressionHyperparams = commands::LinearRegressionHyperparams; 16 | 17 | } // namespace predictors 18 | 19 | #endif // PREDICTORS_LINEARREGRESSIONHYPERPARMAS_HPP_ 20 | -------------------------------------------------------------------------------- /src/engine/include/textmining/textmining.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef TEXTMINING_TEXTMINING_HPP_ 9 | #define TEXTMINING_TEXTMINING_HPP_ 10 | 11 | #include "textmining/Float.hpp" 12 | #include "textmining/Int.hpp" 13 | #include "textmining/Matches.hpp" 14 | #include "textmining/RowIndex.hpp" 15 | #include "textmining/StringSplitter.hpp" 16 | #include "textmining/Vocabulary.hpp" 17 | #include "textmining/WordIndex.hpp" 18 | 19 | #endif // TEXTMINING_TEXTMINING_HPP_ 20 | -------------------------------------------------------------------------------- /src/getml-app/src/install/GetHomeDir.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package install 9 | 10 | import "os/user" 11 | 12 | // GetHomeDir returns the default home directory, 13 | // unless another directory has been passed 14 | // explicitly. 15 | func GetHomeDir(homeDir string) string { 16 | 17 | if homeDir != "" { 18 | return homeDir 19 | } 20 | 21 | usr, err := user.Current() 22 | 23 | if err != nil { 24 | panic(err) 25 | } 26 | 27 | return usr.HomeDir 28 | } 29 | -------------------------------------------------------------------------------- /src/engine/include/debug/throw_unless.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef DEBUG_THROW_UNLESS_HPP_ 9 | #define DEBUG_THROW_UNLESS_HPP_ 10 | 11 | #include "debug/Assert.hpp" 12 | 13 | // Throw an exception unless condition is true. 14 | #define throw_unless(_condition, _msg) \ 15 | (void)((_condition) || (debug::Assert::throw_exception(_msg), 0)) 16 | 17 | // ---------------------------------------------------------------------------- 18 | 19 | #endif // DEBUG_ASSERT_TRUE_HPP 20 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/algorithm/TransformParams.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_ENSEMBLE_TRANSFORMPARAMS_HPP_ 9 | #define FASTPROP_ENSEMBLE_TRANSFORMPARAMS_HPP_ 10 | 11 | #include "helpers/TransformParams.hpp" 12 | 13 | namespace fastprop { 14 | namespace algorithm { 15 | 16 | using TransformParams = typename helpers::TransformParams; 17 | 18 | } // namespace algorithm 19 | } // namespace fastprop 20 | 21 | #endif // FASTPROP_ENSEMBLE_TRANSFORMPARAMS_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/src/containers/Encoding.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "containers/Encoding.hpp" 9 | 10 | namespace containers { 11 | 12 | Encoding::Encoding(const std::shared_ptr& _pool, 13 | const std::shared_ptr _subencoding) { 14 | if (_pool) { 15 | init(_pool, _subencoding); 16 | } else { 17 | init(_pool, _subencoding); 18 | } 19 | } 20 | 21 | } // namespace containers 22 | -------------------------------------------------------------------------------- /src/engine/src/multithreading/ReadWriteLock.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "multithreading/ReadWriteLock.hpp" 9 | 10 | namespace multithreading { 11 | 12 | ReadWriteLock::ReadWriteLock() 13 | : active_weak_writer_exists_(false), 14 | active_writer_exists_(false), 15 | num_active_readers_(0), 16 | num_waiting_weak_writers_(0), 17 | num_waiting_writers_(0) { 18 | assert_true(no_active_writers()); 19 | } 20 | 21 | } // namespace multithreading 22 | -------------------------------------------------------------------------------- /src/engine/src/engine/config/MonitorOptions.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "engine/config/MonitorOptions.hpp" 9 | 10 | namespace engine::config { 11 | 12 | MonitorOptions::MonitorOptions(const ReflectionType& _obj) 13 | : http_port_(_obj.get<"httpPort">()), 14 | proxy_url_(_obj.get<"proxyUrl">()), 15 | tcp_port_(_obj.get<"tcpPort">()) {} 16 | 17 | MonitorOptions::MonitorOptions() : http_port_(1709), tcp_port_(1711) {} 18 | 19 | } // namespace engine::config 20 | -------------------------------------------------------------------------------- /src/getml-app/src/commands/makeStopCommand.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package commands 9 | 10 | import ( 11 | "flag" 12 | "getML/config" 13 | ) 14 | 15 | func makeStopCommand(conf *config.Config) *flag.FlagSet { 16 | 17 | cmd := flag.NewFlagSet("stop", flag.ExitOnError) 18 | 19 | cmd.IntVar( 20 | &conf.Monitor.TCPPort, 21 | "tcp-port", 22 | conf.Monitor.TCPPort, 23 | "The TCP port of the getML instance you would like to stop.") 24 | 25 | return cmd 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/engine/include/engine/pipelines/save.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_PIPELINES_SAVE_HPP_ 9 | #define ENGINE_PIPELINES_SAVE_HPP_ 10 | 11 | #include "engine/pipelines/SaveParams.hpp" 12 | 13 | namespace engine { 14 | namespace pipelines { 15 | namespace save { 16 | 17 | /// Saves the pipeline. 18 | void save(const SaveParams& _params); 19 | 20 | } // namespace save 21 | } // namespace pipelines 22 | } // namespace engine 23 | 24 | #endif // ENGINE_PIPELINES_TOSQL_HPP_ 25 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/algorithm/TableHolderParams.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_ENSEMBLE_TABLEHOLDERPARAMS_HPP_ 9 | #define FASTPROP_ENSEMBLE_TABLEHOLDERPARAMS_HPP_ 10 | 11 | #include "helpers/TableHolderParams.hpp" 12 | 13 | namespace fastprop { 14 | namespace algorithm { 15 | 16 | using TableHolderParams = typename helpers::TableHolderParams; 17 | 18 | } // namespace algorithm 19 | } // namespace fastprop 20 | 21 | #endif // FASTPROP_ENSEMBLE_TABLEHOLDER_HPP_ 22 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/Predictions.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_CONTAINERS_PREDICTIONS_HPP_ 9 | #define FASTPROP_CONTAINERS_PREDICTIONS_HPP_ 10 | 11 | #include "fastprop/Float.hpp" 12 | 13 | #include 14 | 15 | namespace fastprop { 16 | namespace containers { 17 | 18 | using Predictions = std::vector>; 19 | 20 | } // namespace containers 21 | } // namespace fastprop 22 | 23 | #endif // FASTPROP_CONTAINERS_PREDICTIONS_HPP_ 24 | -------------------------------------------------------------------------------- /src/engine/include/predictors/LogisticRegressionHyperparams.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef PREDICTORS_LOGISTICREGRESSIONHYPERPARMAS_HPP_ 9 | #define PREDICTORS_LOGISTICREGRESSIONHYPERPARMAS_HPP_ 10 | 11 | #include "commands/LogisticRegressionHyperparams.hpp" 12 | 13 | namespace predictors { 14 | 15 | using LogisticRegressionHyperparams = commands::LogisticRegressionHyperparams; 16 | 17 | } // namespace predictors 18 | 19 | #endif // PREDICTORS_LOGISTICREGRESSIONHYPERPARMAS_HPP_ 20 | -------------------------------------------------------------------------------- /src/engine/src/helpers/ColumnDescription.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "helpers/ColumnDescription.hpp" 9 | 10 | namespace helpers { 11 | 12 | ColumnDescription::ColumnDescription(const MarkerType& _marker, const std::string& _table, 13 | const std::string& _name) 14 | : val_(f_marker(_marker) * f_name(_name) * f_table(_table)) {} 15 | 16 | ColumnDescription::ColumnDescription(const ReflectionType& _val) : val_(_val) {} 17 | 18 | } // namespace helpers 19 | -------------------------------------------------------------------------------- /src/python-api/tests/unit/test_import_all.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | from importlib import import_module 9 | from pathlib import Path 10 | 11 | 12 | def test_import_all(): 13 | root = Path(__file__).parent.parent.parent / "getml" 14 | for path in root.rglob("*.py"): 15 | rel_path = path.relative_to(root) 16 | module = ( 17 | str(rel_path).replace("/", ".").replace(".py", "").replace(".__init__", "") 18 | ) 19 | import_module(f"getml.{module}") 20 | -------------------------------------------------------------------------------- /src/engine/include/engine/dependency/PredTracker.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_DEPENDENCY_PREDTRACKER_HPP_ 9 | #define ENGINE_DEPENDENCY_PREDTRACKER_HPP_ 10 | 11 | #include "engine/dependency/Tracker.hpp" 12 | #include "predictors/Predictor.hpp" 13 | 14 | namespace engine { 15 | namespace dependency { 16 | 17 | using PredTracker = Tracker; 18 | 19 | } // namespace dependency 20 | } // namespace engine 21 | 22 | #endif // ENGINE_DEPENDENCY_PREDTRACKER_HPP_ 23 | -------------------------------------------------------------------------------- /runtime/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | for port in $(seq "$PORT_MIN" "$PORT_MAX"); do 4 | socat tcp-l:$((port + 10000)),fork,reuseaddr tcp:127.0.0.1:$port & 5 | done 6 | 7 | if [ -z "$1" ]; then 8 | /usr/local/bin/getML \ 9 | -launch-browser=${GETML_LAUNCH_BROWSER} \ 10 | -home-directory=${GETML_HOME_DIRECTORY} \ 11 | -http-port=${GETML_HTTP_PORT} \ 12 | -in-memory=${GETML_IN_MEMORY} \ 13 | -install=${GETML_INSTALL} \ 14 | -log=${GETML_LOG} \ 15 | -project-directory=${GETML_PROJECT_DIRECTORY} \ 16 | -proxy-url=${GETML_PROXY_URL} \ 17 | -token=${GETML_TOKEN} 18 | else 19 | exec "$@" 20 | fi 21 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/ColumnView.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_CONTAINER_COLUMNVIEW_HPP_ 9 | #define FASTPROP_CONTAINER_COLUMNVIEW_HPP_ 10 | 11 | #include "helpers/ColumnView.hpp" 12 | 13 | namespace fastprop { 14 | namespace containers { 15 | 16 | template 17 | using ColumnView = helpers::ColumnView; 18 | 19 | } // namespace containers 20 | } // namespace fastprop 21 | 22 | #endif // FASTPROP_CONTAINER_COLUMNVIEW_HPP_ 23 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/portIsOccupied.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import ( 11 | "net" 12 | "strconv" 13 | "time" 14 | ) 15 | 16 | func portIsOccupied(port int) bool { 17 | timeout, _ := time.ParseDuration("500ms") 18 | 19 | conn, err := net.DialTimeout("tcp", net.JoinHostPort("localhost", strconv.Itoa(port)), timeout) 20 | 21 | if conn == nil && err != nil { 22 | return false 23 | } 24 | 25 | if conn != nil { 26 | conn.Close() 27 | } 28 | 29 | return true 30 | } 31 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/recvBytes.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import ( 11 | "encoding/binary" 12 | "io" 13 | ) 14 | 15 | func recvBytes(conn io.Reader) ([]byte, error) { 16 | 17 | var length int32 18 | 19 | err := binary.Read(conn, binary.BigEndian, &length) 20 | if err != nil { 21 | return nil, err 22 | } 23 | 24 | bytes := make([]byte, length) 25 | 26 | _, err = io.ReadFull(conn, bytes) 27 | if err != nil { 28 | return nil, err 29 | } 30 | 31 | return bytes, nil 32 | } 33 | -------------------------------------------------------------------------------- /src/python-api/getml/data/columns/constants.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | FLOAT_COLUMN = "FloatColumn" 10 | STRING_COLUMN = "StringColumn" 11 | 12 | BOOLEAN_COLUMN_VIEW = "BooleanColumnView" 13 | FLOAT_COLUMN_VIEW = "FloatColumnView" 14 | STRING_COLUMN_VIEW = "StringColumnView" 15 | 16 | VIEW_SIGNIFIER = "View" 17 | 18 | INFINITE = "infinite" 19 | 20 | _columns = [FLOAT_COLUMN, STRING_COLUMN] 21 | 22 | _views = [BOOLEAN_COLUMN_VIEW, FLOAT_COLUMN_VIEW, STRING_COLUMN_VIEW] 23 | 24 | _all = _columns + _views 25 | -------------------------------------------------------------------------------- /src/python-api/getml/events/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | from getml.events.dispatchers import PoolEventDispatcher 9 | from getml.events.emitters import DispatcherEventEmitter 10 | from getml.events.handlers import engine_event_handler, monitor_event_handler 11 | from getml.events.parsers import LogMessageEventParser 12 | 13 | __all__ = [ 14 | "PoolEventDispatcher", 15 | "DispatcherEventEmitter", 16 | "engine_event_handler", 17 | "monitor_event_handler", 18 | "LogMessageEventParser", 19 | ] 20 | -------------------------------------------------------------------------------- /demo-notebooks/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.11.9 2 | 3 | RUN apt-get update \ 4 | && apt-get install -y \ 5 | locales \ 6 | && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \ 7 | && locale-gen 8 | 9 | RUN useradd getml 10 | USER getml 11 | WORKDIR /home/getml 12 | 13 | COPY --chown=getml:getml --chmod=0777 ./requirements.txt /home/getml/requirements.txt 14 | 15 | ENV PATH="/home/getml/.local/bin:$PATH" 16 | RUN python3.11 \ 17 | -mpip install \ 18 | -r /home/getml/requirements.txt 19 | 20 | COPY --chown=getml:getml . /home/getml/demo/ 21 | 22 | EXPOSE 1709 8888 23 | CMD [ "/home/getml/.local/bin/jupyter", "lab", "--ip='*'", "--port=8888", "--notebook-dir='/home/getml/demo'" ] -------------------------------------------------------------------------------- /src/engine/include/commands/LinearRegressionHyperparams.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_LINEARREGRESSIONHYPERPARMAS_HPP_ 9 | #define COMMANDS_LINEARREGRESSIONHYPERPARMAS_HPP_ 10 | 11 | #include "commands/LinearHyperparams.hpp" 12 | 13 | #include 14 | 15 | namespace commands { 16 | 17 | using LinearRegressionHyperparams = 18 | LinearHyperparams>; 19 | 20 | } // namespace commands 21 | 22 | #endif // COMMANDS_LINEARREGRESSIONHYPERPARMAS_HPP_ 23 | -------------------------------------------------------------------------------- /src/engine/include/communication/communication.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMUNICATION_COMMUNICATION_HPP_ 9 | #define COMMUNICATION_COMMUNICATION_HPP_ 10 | 11 | #include "communication/Logger.hpp" 12 | #include "communication/Monitor.hpp" 13 | #include "communication/Receiver.hpp" 14 | #include "communication/Sender.hpp" 15 | #include "communication/SocketLogger.hpp" 16 | #include "communication/Warner.hpp" 17 | #include "communication/Warnings.hpp" 18 | 19 | #endif // COMMUNICATION_COMMUNICATION_HPP_ 20 | -------------------------------------------------------------------------------- /src/engine/src/commands/BooleanColumnView.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "commands/BooleanColumnView.hpp" 9 | 10 | #include "commands/FloatColumnOrFloatColumnView.hpp" 11 | #include "commands/StringColumnOrStringColumnView.hpp" 12 | 13 | #include 14 | 15 | namespace commands { 16 | 17 | BooleanColumnView BooleanColumnView::from_json_obj(const InputVarType& _obj) { 18 | return BooleanColumnView{rfl::json::read(_obj).value()}; 19 | } 20 | 21 | } // namespace commands 22 | -------------------------------------------------------------------------------- /src/engine/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB_RECURSE TEST_SOURCES CONFIGURE_DEPENDS 2 | ${CMAKE_SOURCE_DIR}/test/unit/**/*.cpp 3 | ) 4 | 5 | add_executable(unit_tests ${TEST_SOURCES}) 6 | 7 | target_include_directories( 8 | unit_tests 9 | PRIVATE 10 | ${CMAKE_SOURCE_DIR}/test 11 | ) 12 | target_compile_features(unit_tests PRIVATE cxx_std_23) 13 | set_target_properties(unit_tests PROPERTIES CXX_EXTENSIONS OFF) 14 | 15 | target_compile_options(unit_tests PRIVATE --coverage) 16 | target_link_options(unit_tests PRIVATE --coverage) 17 | 18 | target_link_libraries( 19 | unit_tests 20 | engine-base 21 | GTest::gtest_main 22 | ) 23 | 24 | gtest_discover_tests(unit_tests) 25 | -------------------------------------------------------------------------------- /src/python-api/getml/sqlite3/split_text_field.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Splits a text field into its individual components. 11 | This can not be called directly from SQLite3. It is 12 | a helper function. 13 | """ 14 | 15 | SEPARATORS = ";,.!?-|\t\"\v\f\r\n%'()[]}{" 16 | 17 | 18 | def _split_text_field(textfield): 19 | lower = textfield.lower() 20 | for sep in SEPARATORS: 21 | lower = lower.replace(sep, " ") 22 | splitted = lower.split(" ") 23 | return [s for s in splitted if s] 24 | -------------------------------------------------------------------------------- /src/engine/include/engine/dependency/WarningTracker.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_DEPENDENCY_WARNINGTRACKER_HPP_ 9 | #define ENGINE_DEPENDENCY_WARNINGTRACKER_HPP_ 10 | 11 | #include "communication/Warnings.hpp" 12 | #include "engine/dependency/Tracker.hpp" 13 | 14 | namespace engine { 15 | namespace dependency { 16 | 17 | using WarningTracker = Tracker; 18 | 19 | } // namespace dependency 20 | } // namespace engine 21 | 22 | #endif // ENGINE_DEPENDENCY_WARNINGTRACKER_HPP_ 23 | -------------------------------------------------------------------------------- /src/engine/include/commands/LogisticRegressionHyperparams.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_LOGISTICREGRESSIONHYPERPARMAS_HPP_ 9 | #define COMMANDS_LOGISTICREGRESSIONHYPERPARMAS_HPP_ 10 | 11 | #include "commands/LinearHyperparams.hpp" 12 | 13 | #include 14 | 15 | namespace commands { 16 | 17 | using LogisticRegressionHyperparams = 18 | LinearHyperparams>; 19 | 20 | } // namespace commands 21 | 22 | #endif // COMMANDS_LOGISTICREGRESSIONHYPERPARMAS_HPP_ 23 | -------------------------------------------------------------------------------- /src/engine/include/engine/dependency/FETracker.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_DEPENDENCY_FETRACKER_HPP_ 9 | #define ENGINE_DEPENDENCY_FETRACKER_HPP_ 10 | 11 | #include "engine/dependency/Tracker.hpp" 12 | #include "featurelearners/AbstractFeatureLearner.hpp" 13 | 14 | namespace engine { 15 | namespace dependency { 16 | 17 | using FETracker = Tracker; 18 | 19 | } // namespace dependency 20 | } // namespace engine 21 | 22 | #endif // ENGINE_DEPENDENCY_FETRACKER_HPP_ 23 | -------------------------------------------------------------------------------- /src/engine/include/engine/dependency/dependency.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_DEPENDENCY_DEPENDENCY_HPP_ 9 | #define ENGINE_DEPENDENCY_DEPENDENCY_HPP_ 10 | 11 | #include "engine/dependency/DataFrameTracker.hpp" 12 | #include "engine/dependency/FETracker.hpp" 13 | #include "engine/dependency/PredTracker.hpp" 14 | #include "engine/dependency/PreprocessorTracker.hpp" 15 | #include "engine/dependency/Tracker.hpp" 16 | #include "engine/dependency/WarningTracker.hpp" 17 | 18 | #endif // ENGINE_DEPENDENCY_DEPENDENCY_HPP_ 19 | -------------------------------------------------------------------------------- /src/python-api/getml/hyperopt/burn_in.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Collection of burn-in algorithms to be used by the 11 | hyperparameter optimizations. 12 | """ 13 | 14 | latin_hypercube = "latinHypercube" 15 | """ 16 | Samples from the hyperparameter space 17 | almost randomly, but ensures that the 18 | different draws are sufficiently different 19 | from each other. 20 | """ 21 | 22 | random = "random" 23 | """ 24 | Samples from the hyperparameter space 25 | at random. 26 | """ 27 | 28 | _all_burn_ins = [latin_hypercube, random] 29 | -------------------------------------------------------------------------------- /src/python-api/getml/log.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Determines the logging level of the getML library. 11 | 12 | Logs generated by getML are either on the level WARNING or 13 | INFO. 14 | """ 15 | 16 | import logging 17 | 18 | MIGHT_TAKE_LONG = "INFO [MIGHT TAKE LONG] " 19 | 20 | logger = logging.getLogger("getML logger") 21 | logger.setLevel(logging.DEBUG) 22 | ch = logging.StreamHandler() 23 | ch.setLevel(logging.DEBUG) 24 | formatter = logging.Formatter("%(message)s") 25 | ch.setFormatter(formatter) 26 | logger.addHandler(ch) 27 | -------------------------------------------------------------------------------- /src/engine/src/helpers/FeatureContainer.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "helpers/FeatureContainer.hpp" 9 | 10 | namespace helpers { 11 | 12 | FeatureContainer::FeatureContainer( 13 | const std::shared_ptr>> _features, 14 | const std::shared_ptr>> 15 | _subcontainers) 16 | : features_(_features), subcontainers_(_subcontainers) { 17 | assert_true(features_); 18 | assert_true(subcontainers_); 19 | } 20 | 21 | } // namespace helpers 22 | -------------------------------------------------------------------------------- /src/engine/include/engine/pipelines/to_sql.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_PIPELINES_TOSQL_HPP_ 9 | #define ENGINE_PIPELINES_TOSQL_HPP_ 10 | 11 | #include "engine/pipelines/ToSQLParams.hpp" 12 | 13 | #include 14 | 15 | namespace engine { 16 | namespace pipelines { 17 | namespace to_sql { 18 | 19 | /// Expresses features as SQL code. 20 | std::string to_sql(const ToSQLParams& _params); 21 | 22 | } // namespace to_sql 23 | } // namespace pipelines 24 | } // namespace engine 25 | 26 | #endif // ENGINE_PIPELINES_TOSQL_HPP_ 27 | -------------------------------------------------------------------------------- /src/engine/include/helpers/StringSplitter.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef HELPERS_STRINGSPLITTER_HPP_ 9 | #define HELPERS_STRINGSPLITTER_HPP_ 10 | 11 | #include 12 | #include 13 | 14 | namespace helpers { 15 | 16 | struct StringSplitter { 17 | /// Splits a string into its individual components. 18 | static std::vector split(const std::string& _str, 19 | const std::string& _sep); 20 | }; 21 | 22 | } // namespace helpers 23 | 24 | #endif // HELPERS_STRINGSPLITTER_HPP_ 25 | -------------------------------------------------------------------------------- /src/engine/include/debug/assert_true.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef DEBUG_ASSERT_TRUE_HPP_ 9 | #define DEBUG_ASSERT_TRUE_HPP_ 10 | 11 | // NDEBUG implies no assertions. 12 | #ifdef NDEBUG 13 | 14 | #define assert_true(EX) 15 | 16 | #else 17 | 18 | #include "debug/Assert.hpp" 19 | 20 | #define assert_true(EX) \ 21 | (void)((EX) || (debug::Assert::throw_exception(#EX, __FILE__, __LINE__), 0)) 22 | 23 | #endif 24 | 25 | // ---------------------------------------------------------------------------- 26 | 27 | #endif // DEBUG_ASSERT_TRUE_HPP_ 28 | -------------------------------------------------------------------------------- /src/python-api/getml/pipeline/tags.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | A small lists-type class that allows to search for arbitrary substrings within its items. 11 | """ 12 | 13 | 14 | class Tags(list): 15 | """ 16 | A small lists-type class that allows to search for arbitrary substrings within its items. 17 | """ 18 | 19 | def __contains__(self, substr: object) -> bool: 20 | if not isinstance(substr, str): 21 | raise ValueError("Tags can only contain strings.") 22 | return any(substr in tag for tag in self) 23 | -------------------------------------------------------------------------------- /src/engine/include/engine/dependency/PreprocessorTracker.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_DEPENDENCY_PREPROCESSORTRACKER_HPP_ 9 | #define ENGINE_DEPENDENCY_PREPROCESSORTRACKER_HPP_ 10 | 11 | #include "engine/dependency/Tracker.hpp" 12 | #include "engine/preprocessors/Preprocessor.hpp" 13 | 14 | namespace engine { 15 | namespace dependency { 16 | 17 | using PreprocessorTracker = Tracker; 18 | 19 | } // namespace dependency 20 | } // namespace engine 21 | 22 | #endif // ENGINE_DEPENDENCY_PREPROCESSORTRACKER_HPP_ 23 | -------------------------------------------------------------------------------- /src/engine/include/memmap/FreeBlock.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef MEMMAP_FREEBLOCK_HPP_ 9 | #define MEMMAP_FREEBLOCK_HPP_ 10 | 11 | #include 12 | 13 | namespace memmap { 14 | 15 | struct FreeBlock { 16 | /// The page number marking the beginnung of the free block 17 | size_t begin_; 18 | 19 | /// The page number marking the end of the free block. 20 | size_t end_; 21 | }; 22 | 23 | // ---------------------------------------------------------------------------- 24 | } // namespace memmap 25 | 26 | #endif // MEMMAP_FREEBLOCK_HPP_ 27 | -------------------------------------------------------------------------------- /src/engine/include/commands/DataFrameFromJSON.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_DATA_FRAME_FROM_JSON_HPP_ 9 | #define COMMANDS_DATA_FRAME_FROM_JSON_HPP_ 10 | 11 | #include "commands/Float.hpp" 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | namespace commands { 19 | 20 | using DataFrameFromJSON = 21 | std::map, std::vector>>; 23 | 24 | } // namespace commands 25 | 26 | #endif // COMMANDS_DATA_FRAME_FROM_JSON_HPP_ 27 | -------------------------------------------------------------------------------- /src/engine/src/optimizers/Adam.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "optimizers/Adam.hpp" 9 | 10 | namespace optimizers { 11 | 12 | Adam::Adam(const Float _decay_mom1, const Float _decay_mom2, 13 | const Float _learning_rate, const Float _offset, const size_t _size) 14 | : decay_mom1_(_decay_mom1), 15 | decay_mom2_(_decay_mom2), 16 | first_moment_(std::vector(_size)), 17 | learning_rate_(_learning_rate), 18 | offset_(_offset), 19 | second_moment_(std::vector(_size)) {} 20 | 21 | } // namespace optimizers 22 | -------------------------------------------------------------------------------- /src/engine/src/commands/FloatColumnOrFloatColumnView.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | #include "commands/FloatColumnOrFloatColumnView.hpp" 8 | 9 | #include "commands/BooleanColumnView.hpp" 10 | #include "commands/StringColumnOrStringColumnView.hpp" 11 | 12 | #include 13 | 14 | namespace commands { 15 | 16 | FloatColumnOrFloatColumnView FloatColumnOrFloatColumnView::from_json_obj( 17 | const InputVarType& _obj) { 18 | return FloatColumnOrFloatColumnView{ 19 | rfl::json::read(_obj).value()}; 20 | } 21 | 22 | } // namespace commands 23 | -------------------------------------------------------------------------------- /src/engine/include/helpers/StringReplacer.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef HELPERS_STRINGREPLACER_HPP_ 9 | #define HELPERS_STRINGREPLACER_HPP_ 10 | 11 | #include 12 | 13 | namespace helpers { 14 | 15 | struct StringReplacer { 16 | /// Replaces all instances of _from in _str with _to. 17 | static std::string replace_all(const std::string &_str, 18 | const std::string &_from, 19 | const std::string &_to); 20 | }; 21 | 22 | } // namespace helpers 23 | 24 | #endif // HELPERS_STRINGREPLACER_HPP_ 25 | -------------------------------------------------------------------------------- /src/engine/src/multithreading/ReadLock.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "multithreading/ReadLock.hpp" 9 | 10 | namespace multithreading { 11 | 12 | ReadLock::ReadLock(const rfl::Ref& _lock) 13 | : lock_(_lock), released_(false) { 14 | lock_->read_lock(); 15 | } 16 | 17 | /// Read lock with timeout. 18 | ReadLock::ReadLock(const rfl::Ref& _lock, 19 | const std::chrono::milliseconds _duration) 20 | : lock_(_lock), released_(false) { 21 | lock_->read_lock(_duration); 22 | } 23 | 24 | } // namespace multithreading 25 | -------------------------------------------------------------------------------- /src/engine/include/strings/StringHasher.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef STRINGS_STRINGHASHER_HPP_ 9 | #define STRINGS_STRINGHASHER_HPP_ 10 | 11 | #include "strings/String.hpp" 12 | 13 | namespace strings { 14 | 15 | // ---------------------------------------------------------------------------- 16 | 17 | struct StringHasher { 18 | std::size_t operator()(const String& _str) const { return _str.hash(); } 19 | }; 20 | 21 | // ---------------------------------------------------------------------------- 22 | } // namespace strings 23 | 24 | #endif // STRINGS_STRINGHASHER_HPP_ 25 | -------------------------------------------------------------------------------- /src/getml-app/src/install/GetMainDir.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package install 9 | 10 | import ( 11 | "path/filepath" 12 | "runtime" 13 | ) 14 | 15 | // GetMainDir returns the main directory 16 | // to which we are copying our files. 17 | func GetMainDir(targetDir string, packageName string) string { 18 | 19 | if runtime.GOOS == "windows" { 20 | return "." 21 | } 22 | 23 | if targetDir == UsrLocal { 24 | return filepath.Join(GetHomeDir(targetDir), "getML/"+packageName) 25 | } 26 | 27 | return filepath.Join(GetHomeDir(targetDir), ".getML/"+packageName) 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/Subfeatures.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_CONTAINERS_SUBFEATURES_HPP_ 9 | #define FASTPROP_CONTAINERS_SUBFEATURES_HPP_ 10 | 11 | #include "fastprop/Float.hpp" 12 | #include "fastprop/Int.hpp" 13 | #include "fastprop/containers/ColumnView.hpp" 14 | 15 | #include 16 | 17 | namespace fastprop { 18 | namespace containers { 19 | 20 | using Subfeatures = std::vector>>; 21 | 22 | } // namespace containers 23 | } // namespace fastprop 24 | 25 | #endif // FASTPROP_CONTAINERS_SUBFEATURES_HPP_ 26 | -------------------------------------------------------------------------------- /src/engine/src/commands/StringColumnOrStringColumnView.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "commands/StringColumnOrStringColumnView.hpp" 9 | 10 | #include "commands/BooleanColumnView.hpp" 11 | #include "commands/FloatColumnOrFloatColumnView.hpp" 12 | 13 | #include 14 | 15 | namespace commands { 16 | 17 | StringColumnOrStringColumnView StringColumnOrStringColumnView::from_json_obj( 18 | const InputVarType& _obj) { 19 | return StringColumnOrStringColumnView{ 20 | rfl::json::read(_obj).value()}; 21 | } 22 | 23 | } // namespace commands 24 | -------------------------------------------------------------------------------- /src/getml-app/src/changeToResourceDir.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package main 9 | 10 | import ( 11 | "getML/install" 12 | "os" 13 | "path" 14 | ) 15 | 16 | // Changes to the path containing the resources, 17 | // such as config.json 18 | func changeToResourceDir(packageName string) { 19 | 20 | execPath, err := os.Executable() 21 | 22 | if err != nil { 23 | return 24 | } 25 | 26 | execDir := path.Dir(execPath) 27 | 28 | if execDir == install.UsrLocalBin { 29 | os.Chdir(install.GetMainDir(install.UsrLocal, packageName)) 30 | return 31 | } 32 | 33 | os.Chdir(execDir) 34 | } 35 | -------------------------------------------------------------------------------- /src/engine/include/database/database.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef DATABASE_DATABASE_HPP_ 9 | #define DATABASE_DATABASE_HPP_ 10 | 11 | #include "database/CSVBuffer.hpp" 12 | #include "database/Connector.hpp" 13 | #include "database/DatabaseParser.hpp" 14 | #include "database/DatabaseReader.hpp" 15 | #include "database/Float.hpp" 16 | #include "database/Getter.hpp" 17 | #include "database/Int.hpp" 18 | #include "database/Iterator.hpp" 19 | #include "database/QuerySplitter.hpp" 20 | #include "database/Sqlite3.hpp" 21 | #include "database/sniff.hpp" 22 | 23 | #endif // DATABASE_DATABASE_HPP_ 24 | -------------------------------------------------------------------------------- /src/engine/include/engine/pipelines/check.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_PIPELINES_CHECK_HPP_ 9 | #define ENGINE_PIPELINES_CHECK_HPP_ 10 | 11 | #include "engine/pipelines/CheckParams.hpp" 12 | #include "engine/pipelines/Pipeline.hpp" 13 | 14 | namespace engine { 15 | namespace pipelines { 16 | namespace check { 17 | 18 | /// Checks the data model for any inconsistencies. 19 | void check(const Pipeline& _pipeline, const CheckParams& _params); 20 | 21 | } // namespace check 22 | } // namespace pipelines 23 | } // namespace engine 24 | 25 | #endif // ENGINE_PIPELINES_CHECK_HPP_ 26 | -------------------------------------------------------------------------------- /src/engine/src/logging/ProgressLogger.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "logging/ProgressLogger.hpp" 9 | 10 | namespace logging { 11 | 12 | ProgressLogger::ProgressLogger( 13 | const std::string& _msg, 14 | const std::shared_ptr& _logger, const size_t _total, 15 | const size_t _begin, const size_t _end) 16 | : begin_(_begin), 17 | current_value_(0), 18 | end_(_end), 19 | logger_(_logger), 20 | total_(_total) { 21 | if (logger_ && total_ > 0 && _msg != "") { 22 | logger_->log(_msg); 23 | } 24 | } 25 | 26 | } // namespace logging 27 | -------------------------------------------------------------------------------- /src/engine/test/unit/io/test_StatementMaker.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | #include "gwt.h" 6 | #include "io/StatementMaker.hpp" 7 | 8 | using namespace std::literals::string_literals; 9 | 10 | TEST(TestStatementMaker, TestHandleSchema) { 11 | GWT::given(std::make_tuple("this.is.a.table.name"s, ">"s, "<"s)) 12 | .when([](auto const&& args) { 13 | auto const& [table_name, quotechar1, quotechar2] = args; 14 | return io::StatementMaker::handle_schema(table_name, quotechar1, 15 | quotechar2); 16 | }) 17 | .then([](auto const&& schema) { 18 | auto const expected = "this<.>is<.>a<.>table<.>name"s; 19 | EXPECT_EQ(expected, schema); 20 | }); 21 | } 22 | -------------------------------------------------------------------------------- /src/engine/include/commands/NotSupportedInCommunity.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_NOTSUPPORTEDINCOMMUNITY_HPP_ 9 | #define COMMANDS_NOTSUPPORTEDINCOMMUNITY_HPP_ 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | namespace commands { 17 | 18 | template 19 | struct NotSupportedInCommunity { 20 | using Tag = rfl::Literal; 21 | 22 | std::string name() const { return Tag().str(); } 23 | }; 24 | 25 | } // namespace commands 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /src/engine/include/fastprop/containers/Match.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef FASTPROP_CONTAINERS_MATCH_HPP_ 9 | #define FASTPROP_CONTAINERS_MATCH_HPP_ 10 | 11 | #include 12 | 13 | namespace fastprop { 14 | namespace containers { 15 | // ------------------------------------------------------------------------- 16 | 17 | struct Match { 18 | size_t ix_input; 19 | 20 | size_t ix_output; 21 | }; 22 | 23 | // ------------------------------------------------------------------------- 24 | } // namespace containers 25 | } // namespace fastprop 26 | 27 | #endif // FASTPROP_CONTAINERS_MATCH_HPP_ 28 | -------------------------------------------------------------------------------- /src/engine/include/commands/GetContent.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_GETCONTENT_HPP_ 9 | #define COMMANDS_GETCONTENT_HPP_ 10 | 11 | #include "commands/Int.hpp" 12 | 13 | #include 14 | #include 15 | 16 | #include 17 | 18 | namespace commands { 19 | 20 | /// Defines the three fields necessary to the content of a column. 21 | using GetContent = 22 | rfl::NamedTuple, rfl::Field<"length_", size_t>, 23 | rfl::Field<"start_", size_t>>; 24 | 25 | } // namespace commands 26 | 27 | #endif // COMMANDS_GETCONTENT_HPP_ 28 | -------------------------------------------------------------------------------- /src/engine/include/transpilation/SQLParams.hpp: -------------------------------------------------------------------------------- 1 | #ifndef TRANSPILATION_SQLPARAMS_HPP_ 2 | #define TRANSPILATION_SQLPARAMS_HPP_ 3 | 4 | #include "transpilation/FeatureTableParams.hpp" 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #include 13 | #include 14 | 15 | namespace transpilation { 16 | 17 | /// The features expressed as SQL code. 18 | using f_sql = rfl::Field<"sql_", std::vector>; 19 | 20 | /// Contains the parameters needed to create a feature table. 21 | using SQLParams = rfl::define_named_tuple_t< 22 | rfl::remove_fields_t, f_sql>; 23 | 24 | } // namespace transpilation 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /src/engine/src/communication/Warner.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "communication/Warner.hpp" 9 | 10 | #include "communication/Sender.hpp" 11 | 12 | #include 13 | #include 14 | 15 | namespace communication { 16 | 17 | Warner::Warner() : warnings_(rfl::Ref>::make()) {} 18 | 19 | void Warner::send(Poco::Net::StreamSocket* _socket) const { 20 | const auto named_tuple = 21 | rfl::make_named_tuple(rfl::make_field<"warnings_">(warnings_)); 22 | Sender::send_string(rfl::json::write(named_tuple), _socket); 23 | } 24 | } // namespace communication 25 | -------------------------------------------------------------------------------- /src/engine/src/engine/handlers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources( 2 | engine-base 3 | PRIVATE 4 | AggOpParser.cpp 5 | ArrowHandler.cpp 6 | ArrowSocketInputStream.cpp 7 | ArrowSocketOutputStream.cpp 8 | BoolOpParser.cpp 9 | ColumnManager.cpp 10 | ColumnManager_execute_command.cpp 11 | DataFrameManager.cpp 12 | DataFrameManager_execute_command.cpp 13 | DataFrameManager_from_json.cpp 14 | DataFrameManager_get_data_frame.cpp 15 | DataFrameManager_receive_data.cpp 16 | DatabaseManager.cpp 17 | FileHandler.cpp 18 | FloatOpParser.cpp 19 | PipelineManager.cpp 20 | PipelineManager_execute_command.cpp 21 | PipelineManager_receive_data.cpp 22 | ProjectManager.cpp 23 | ProjectManager_execute_command.cpp 24 | StringOpParser.cpp 25 | ViewManager.cpp 26 | ViewParser.cpp 27 | ) 28 | -------------------------------------------------------------------------------- /src/python-api/getml/utilities/formatting/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | from .cell_formatter import CellFormatter 10 | from .column_formatter import _ColumnFormatter 11 | from .data_frame_formatter import _DataFrameFormatter 12 | from .ellipsis import _Ellipsis 13 | from .formatter import _Formatter 14 | from .signature_formatter import _SignatureFormatter 15 | from .view_formatter import _ViewFormatter 16 | 17 | __all__ = [ 18 | "CellFormatter", 19 | "_ColumnFormatter", 20 | "_DataFrameFormatter", 21 | "_Ellipsis", 22 | "_Formatter", 23 | "_SignatureFormatter", 24 | "_ViewFormatter", 25 | ] 26 | -------------------------------------------------------------------------------- /src/engine/include/commands/CheckPipeline.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_CHECK_PIPELINE_HPP_ 9 | #define COMMANDS_CHECK_PIPELINE_HPP_ 10 | 11 | #include "commands/DataFramesOrViews.hpp" 12 | 13 | #include 14 | #include 15 | #include 16 | 17 | namespace commands { 18 | 19 | using CheckPipeline = typename rfl::internal::define_named_tuple< 20 | rfl::Field<"type_", rfl::Literal<"Pipeline.check">>, 21 | rfl::Field<"name_", std::string>, DataFramesOrViews>::type; 22 | 23 | } // namespace commands 24 | 25 | #endif // COMMANDS_CHECK_PIPELINE_HPP_ 26 | -------------------------------------------------------------------------------- /src/engine/include/commands/Predictor.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_PREDICTOR_HPP_ 9 | #define COMMANDS_PREDICTOR_HPP_ 10 | 11 | #include "commands/LinearRegressionHyperparams.hpp" 12 | #include "commands/LogisticRegressionHyperparams.hpp" 13 | #include "commands/XGBoostHyperparams.hpp" 14 | 15 | #include 16 | 17 | namespace commands { 18 | 19 | using Predictor = 20 | rfl::TaggedUnion<"type_", LinearRegressionHyperparams, 21 | LogisticRegressionHyperparams, XGBoostHyperparams>; 22 | 23 | } // namespace commands 24 | 25 | #endif // ENGINE_PREDICTORS_PREDICTOR_HPP_ 26 | -------------------------------------------------------------------------------- /src/engine/include/engine/handlers/handlers.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_HANDLERS_HANDLERS_HPP_ 9 | #define ENGINE_HANDLERS_HANDLERS_HPP_ 10 | 11 | #include "engine/handlers/DataFrameManager.hpp" 12 | #include "engine/handlers/DataFrameManagerParams.hpp" 13 | #include "engine/handlers/DatabaseManager.hpp" 14 | #include "engine/handlers/FileHandler.hpp" 15 | #include "engine/handlers/PipelineManager.hpp" 16 | #include "engine/handlers/PipelineManagerParams.hpp" 17 | #include "engine/handlers/ProjectManager.hpp" 18 | #include "engine/handlers/ProjectManagerParams.hpp" 19 | 20 | #endif // ENGINE_HANDLERS_HANDLERS_HPP_ 21 | -------------------------------------------------------------------------------- /src/engine/include/multithreading/multithreading.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef MULTITHREADING_HPP_ 9 | #define MULTITHREADING_HPP_ 10 | 11 | #include "multithreading/Communicator.hpp" 12 | #include "multithreading/ReadLock.hpp" 13 | #include "multithreading/ReadWriteLock.hpp" 14 | #include "multithreading/Reducer.hpp" 15 | #include "multithreading/WeakWriteLock.hpp" 16 | #include "multithreading/WriteLock.hpp" 17 | #include "multithreading/all_reduce.hpp" 18 | #include "multithreading/broadcast.hpp" 19 | #include "multithreading/maximum.hpp" 20 | #include "multithreading/minimum.hpp" 21 | 22 | #endif // MULTITHREADING_HPP_ 23 | -------------------------------------------------------------------------------- /src/getml-app/src/commands/addHomeDirFlag.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package commands 9 | 10 | import ( 11 | "flag" 12 | "getML/config" 13 | "getML/install" 14 | ) 15 | 16 | func addHomeDirFlag(cmd *flag.FlagSet, commandLine *config.CommandLine) { 17 | cmd.StringVar( 18 | &commandLine.HomeDir, 19 | "home-directory", 20 | install.GetHomeDir(""), 21 | "The directory which should be treated as the home directory by getML. "+ 22 | "getML will create a hidden folder named '.getML' in said directory. "+ 23 | "This is where the binaries are installed, if "+ 24 | "the install process does not have root rights.") 25 | } 26 | -------------------------------------------------------------------------------- /src/python-api/getml/preprocessors/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Contains routines for preprocessing data frames. 11 | """ 12 | 13 | from .category_trimmer import CategoryTrimmer 14 | from .email_domain import EmailDomain 15 | from .imputation import Imputation 16 | from .mapping import Mapping 17 | from .seasonal import Seasonal 18 | from .substring import Substring 19 | from .text_field_splitter import TextFieldSplitter 20 | 21 | __all__ = ( 22 | "CategoryTrimmer", 23 | "EmailDomain", 24 | "Imputation", 25 | "Mapping", 26 | "Seasonal", 27 | "Substring", 28 | "TextFieldSplitter", 29 | ) 30 | -------------------------------------------------------------------------------- /src/engine/include/engine/pipelines/load.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_PIPELINES_LOAD_HPP_ 9 | #define ENGINE_PIPELINES_LOAD_HPP_ 10 | 11 | #include "engine/dependency/PipelineTrackers.hpp" 12 | #include "engine/pipelines/Pipeline.hpp" 13 | 14 | namespace engine { 15 | namespace pipelines { 16 | namespace load { 17 | 18 | /// Loads the pipeline from the hard disk. 19 | Pipeline load(const std::string& _path, 20 | const dependency::PipelineTrackers& _pipeline_trackers); 21 | 22 | } // namespace load 23 | } // namespace pipelines 24 | } // namespace engine 25 | 26 | #endif // ENGINE_PIPELINES_LOAD_HPP_ 27 | -------------------------------------------------------------------------------- /src/engine/src/multithreading/WriteLock.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "multithreading/WriteLock.hpp" 9 | 10 | namespace multithreading { 11 | 12 | WriteLock::WriteLock(const rfl::Ref& _lock) 13 | : lock_(_lock), released_(false) { 14 | lock_->write_lock(); 15 | } 16 | 17 | /// WriteLock with timeout. 18 | WriteLock::WriteLock(const rfl::Ref& _lock, 19 | const std::chrono::milliseconds _duration) 20 | : lock_(_lock), released_(false) { 21 | lock_->write_lock(_duration); 22 | } 23 | 24 | WriteLock::~WriteLock() { unlock(); } 25 | 26 | } // namespace multithreading 27 | -------------------------------------------------------------------------------- /src/python-api/getml/hyperopt/optimization.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Collection of optimization algorithms to be used by the 11 | hyperparameter optimizations. 12 | """ 13 | 14 | bfgs = "bfgs" 15 | """ 16 | Broyden-Fletcher-Goldbarb-Shanno optimization algorithm. 17 | 18 | The BFGS algorithm is a quasi-Newton method that 19 | requires the function to be differentiable. 20 | """ 21 | 22 | nelder_mead = "nelderMead" 23 | """ 24 | Nelder-Mead optimization algorithm. 25 | 26 | Nelder-Mead is a direct search method that 27 | does not require functions to be differentiable. 28 | """ 29 | 30 | _all_optimizations = [bfgs, nelder_mead] 31 | -------------------------------------------------------------------------------- /src/engine/conan-repository/recipes/xgboost/all/test_package/conanfile.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from conan import ConanFile 4 | from conan.tools.cmake import CMake, cmake_layout 5 | from conan.tools.build import can_run 6 | 7 | 8 | class xgboostTestConan(ConanFile): 9 | settings = "os", "compiler", "build_type", "arch" 10 | generators = "CMakeDeps", "CMakeToolchain" 11 | 12 | def requirements(self): 13 | self.requires(self.tested_reference_str) 14 | 15 | def build(self): 16 | cmake = CMake(self) 17 | cmake.configure() 18 | cmake.build() 19 | 20 | def layout(self): 21 | cmake_layout(self) 22 | 23 | def test(self): 24 | if can_run(self): 25 | cmd = os.path.join(self.cpp.build.bindir, "example") 26 | self.run(cmd, env="conanrun") 27 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/sendString.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import ( 11 | "encoding/binary" 12 | "io" 13 | ) 14 | 15 | // sendString sends a string to the given connection 16 | func sendString(conn io.Writer, str string) error { 17 | 18 | length := int32(len(str)) 19 | 20 | if err := binary.Write(conn, binary.BigEndian, length); err != nil { 21 | return err 22 | } 23 | 24 | _, err := io.WriteString(conn, str) 25 | 26 | return err 27 | 28 | } 29 | 30 | func SendString(conn io.Writer, str string) error { 31 | err := sendString(conn, str) 32 | if err != nil { 33 | return err 34 | } 35 | return nil 36 | } 37 | -------------------------------------------------------------------------------- /src/python-api/getml/data/columns/last_change.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Returns the last time a data frame has been changed. 11 | """ 12 | 13 | from typing import Any, Dict 14 | 15 | import getml.communication as comm 16 | 17 | 18 | def _last_change(df_name) -> str: 19 | cmd: Dict[str, Any] = {} 20 | cmd["type_"] = "DataFrame.last_change" 21 | cmd["name_"] = df_name 22 | 23 | with comm.send_and_get_socket(cmd) as sock: 24 | msg = comm.recv_string(sock) 25 | if msg != "Success!": 26 | comm.handle_engine_exception(msg) 27 | result = comm.recv_string(sock) 28 | 29 | return result 30 | -------------------------------------------------------------------------------- /src/engine/cmake/ccache.cmake: -------------------------------------------------------------------------------- 1 | function(prepare_ccache) 2 | set(USE_CCACHE ON CACHE BOOL "Enable ccache if available") 3 | if(NOT USE_CCACHE) 4 | message(STATUS "ccache usage disabled.") 5 | return() 6 | endif() 7 | 8 | message(STATUS "Enabling usage of ccache.") 9 | 10 | find_program(CCACHE_PROGRAM ccache) 11 | if(CCACHE_PROGRAM) 12 | message( 13 | STATUS 14 | "Found ccache: ${CCACHE_PROGRAM}. Will be using it as C and CXX Launcher") 15 | set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PROGRAM}" CACHE FILEPATH "Path to C compiler launcher") 16 | set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}" CACHE FILEPATH "Path to C++ compiler launcher") 17 | else() 18 | message(STATUS "ccache not found. Please install it to speed up the compilation") 19 | endif() 20 | 21 | endfunction(prepare_ccache) 22 | -------------------------------------------------------------------------------- /src/engine/include/commands/BasicCommand.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_BASICCOMMAND_HPP_ 9 | #define COMMANDS_BASICCOMMAND_HPP_ 10 | 11 | #include 12 | #include 13 | 14 | namespace commands { 15 | 16 | /// Infers the type of the command. 17 | using f_name = rfl::Field<"name_", std::string>; 18 | 19 | /// The type of the command - so we can correctly identify this. 20 | using f_type = rfl::Field<"type_", std::string>; 21 | 22 | /// The basis for all other commands. 23 | using BasicCommand = rfl::NamedTuple; 24 | 25 | } // namespace commands 26 | 27 | #endif // COMMANDS_BASICCOMMAND_HPP_ 28 | -------------------------------------------------------------------------------- /src/engine/include/commands/FeatureLearner.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_FEATURELEARNER_HPP_ 9 | #define COMMANDS_FEATURELEARNER_HPP_ 10 | 11 | #include "commands/NotSupportedInCommunity.hpp" 12 | #include "fastprop/Hyperparameters.hpp" 13 | 14 | #include 15 | 16 | namespace commands { 17 | 18 | using FeatureLearner = rfl::TaggedUnion< 19 | "type_", fastprop::Hyperparameters, NotSupportedInCommunity<"Fastboost">, 20 | NotSupportedInCommunity<"Multirel">, NotSupportedInCommunity<"Relboost">, 21 | NotSupportedInCommunity<"RelMT">>; 22 | 23 | } // namespace commands 24 | 25 | #endif // COMMANDS_FEATURELEARNER_HPP_ 26 | -------------------------------------------------------------------------------- /src/engine/include/database/DatabaseParser.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef DATABASE_DATABASEPARSER_HPP_ 9 | #define DATABASE_DATABASEPARSER_HPP_ 10 | 11 | #include "database/Command.hpp" 12 | #include "database/Connector.hpp" 13 | 14 | #include 15 | 16 | namespace database { 17 | 18 | struct DatabaseParser { 19 | /// Given a command, the DatabaseParser returns the correct 20 | /// database connector. 21 | static rfl::Ref parse(const typename Command::ReflectionType& _cmd, 22 | const std::string& _password); 23 | }; 24 | 25 | } // namespace database 26 | 27 | #endif // DATABASE_DATABASEPARSER_HPP_ 28 | -------------------------------------------------------------------------------- /src/getml-app/src/createConnectionToEngine.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package main 9 | 10 | import ( 11 | "net" 12 | "strconv" 13 | "time" 14 | ) 15 | 16 | func createConnectionToEngine(tcpPort int) (*net.TCPConn, error) { 17 | 18 | tcpAddr, err := net.ResolveTCPAddr("tcp4", "localhost:"+strconv.Itoa(tcpPort)) 19 | 20 | if err != nil { 21 | return nil, err 22 | } 23 | 24 | for i := 0; i < 5; i++ { 25 | 26 | conn, err := net.DialTCP("tcp", nil, tcpAddr) 27 | 28 | if err == nil { 29 | return conn, nil 30 | } else if i == 4 { 31 | return nil, err 32 | } 33 | 34 | time.Sleep(time.Second) 35 | 36 | } 37 | 38 | return nil, err 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/python-api/getml/pipeline/table.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | """ 9 | Contains class representing data for a table of a pipeline. 10 | """ 11 | 12 | from dataclasses import dataclass 13 | 14 | 15 | @dataclass 16 | class Table: 17 | """ 18 | A dataclass that holds data about a single table. 19 | 20 | Args: 21 | name: 22 | The name of the table. 23 | importance: 24 | The importance of the table. 25 | target: 26 | The target of the table. 27 | marker: 28 | The marker of the table. 29 | """ 30 | 31 | name: str 32 | importance: float 33 | target: str 34 | marker: str 35 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/loadPipelineFromDisc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import ( 11 | "errors" 12 | ) 13 | 14 | func loadPipelineFromDisc(name string, port int) error { 15 | 16 | conn, err := createConnectionToEngine(port) 17 | 18 | if err != nil { 19 | return err 20 | } 21 | 22 | defer conn.Close() 23 | 24 | err = basicCommand{ 25 | Name: name, 26 | Type: "Pipeline.load"}.send(conn) 27 | 28 | if err != nil { 29 | return err 30 | } 31 | 32 | msg, err := recvString(conn) 33 | 34 | if err != nil { 35 | return err 36 | } 37 | 38 | if msg != "Success!" { 39 | return errors.New(msg) 40 | } 41 | 42 | return nil 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/python-api/getml/sqlite3/var.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | VAR aggregation. 11 | """ 12 | 13 | import numpy as np 14 | 15 | from .helpers import _not_null 16 | 17 | 18 | class _Var: 19 | def __init__(self): 20 | self.values = [] 21 | 22 | def step(self, value): 23 | """ 24 | Executed every time the function is called. 25 | """ 26 | if _not_null(value): 27 | self.values.append(value) 28 | 29 | def finalize(self): 30 | """ 31 | Executed after all values are inserted. 32 | """ 33 | if not self.values: 34 | return None 35 | return np.var(self.values) 36 | -------------------------------------------------------------------------------- /src/getml-app/src/install/copyDir.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package install 9 | 10 | import ( 11 | "io/ioutil" 12 | "os" 13 | "path/filepath" 14 | ) 15 | 16 | func copyDir(sourceDir string, mainDir string, overwrite bool) error { 17 | 18 | destinationDir := filepath.Join(mainDir, sourceDir) 19 | 20 | os.MkdirAll(destinationDir, os.ModePerm) 21 | 22 | files, err := ioutil.ReadDir(sourceDir) 23 | 24 | if err != nil { 25 | return err 26 | } 27 | 28 | for _, file := range files { 29 | fname := filepath.Join(sourceDir, file.Name()) 30 | err := copyFile(fname, "", mainDir, overwrite) 31 | if err != nil { 32 | return err 33 | } 34 | } 35 | 36 | return err 37 | } 38 | -------------------------------------------------------------------------------- /src/python-api/getml/sqlite3/median.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | MEDIAN aggregation. 11 | """ 12 | 13 | import numpy as np 14 | 15 | from .helpers import _not_null 16 | 17 | 18 | class _Median: 19 | def __init__(self): 20 | self.values = [] 21 | 22 | def step(self, value): 23 | """ 24 | Executed every time the function is called. 25 | """ 26 | if _not_null(value): 27 | self.values.append(value) 28 | 29 | def finalize(self): 30 | """ 31 | Executed after all values are inserted. 32 | """ 33 | if not self.values: 34 | return None 35 | return np.median(self.values) 36 | -------------------------------------------------------------------------------- /src/python-api/getml/preprocessors/validate.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Reduces boilerplate code for the validation. 11 | """ 12 | 13 | 14 | def _validate(instance, params): 15 | if params is None: 16 | params = instance.__dict__ 17 | else: 18 | params = {**instance.__dict__, **params} 19 | 20 | if not isinstance(params, dict): 21 | raise ValueError("params must be None or a dictionary!") 22 | 23 | for kkey in params: 24 | if kkey not in instance._supported_params: 25 | raise KeyError( 26 | f"Instance variable '{kkey}' is not supported in {instance.type}." 27 | ) 28 | 29 | return params 30 | -------------------------------------------------------------------------------- /src/python-api/getml/sqlite3/stddev.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | STDDEV aggregation. 11 | """ 12 | 13 | import numpy as np 14 | 15 | from .helpers import _not_null 16 | 17 | 18 | class _Stddev: 19 | def __init__(self): 20 | self.values = [] 21 | 22 | def step(self, value): 23 | """ 24 | Executed every time the function is called. 25 | """ 26 | if _not_null(value): 27 | self.values.append(value) 28 | 29 | def finalize(self): 30 | """ 31 | Executed after all values are inserted. 32 | """ 33 | if not self.values: 34 | return None 35 | return np.sqrt(np.var(self.values)) 36 | -------------------------------------------------------------------------------- /src/engine/include/helpers/Subrole.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef HELPERS_SUBROLE_HPP_ 9 | #define HELPERS_SUBROLE_HPP_ 10 | 11 | namespace helpers { 12 | 13 | enum class Subrole { 14 | comparison_only, 15 | email, 16 | email_only, 17 | exclude_category_trimmer, 18 | exclude_fastprop, 19 | exclude_feature_learners, 20 | exclude_imputation, 21 | exclude_mapping, 22 | exclude_multirel, 23 | exclude_predictors, 24 | exclude_preprocessors, 25 | exclude_relboost, 26 | exclude_relmt, 27 | exclude_seasonal, 28 | exclude_text_field_splitter, 29 | substring, 30 | substring_only 31 | }; 32 | 33 | } // namespace helpers 34 | 35 | #endif // HELPERS_SUBROLE_HPP_ 36 | -------------------------------------------------------------------------------- /src/engine/src/communication/Logger.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "communication/Logger.hpp" 9 | 10 | #include 11 | #include 12 | 13 | namespace communication { 14 | 15 | Logger::Logger(const std::shared_ptr& _monitor) 16 | : monitor_(_monitor) { 17 | assert_true(monitor_); 18 | } 19 | 20 | void Logger::log(const std::string& _msg) const { 21 | assert_true(monitor_); 22 | 23 | const auto now = std::chrono::system_clock::now(); 24 | 25 | const std::time_t current_time = std::chrono::system_clock::to_time_t(now); 26 | 27 | std::cout << std::ctime(¤t_time) << _msg << std::endl << std::endl; 28 | } 29 | } // namespace communication 30 | -------------------------------------------------------------------------------- /src/engine/include/commands/WarningFingerprint.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef COMMANDS_WARNINGFINGERPRINT_HPP_ 9 | #define COMMANDS_WARNINGFINGERPRINT_HPP_ 10 | 11 | #include "commands/Fingerprint.hpp" 12 | 13 | #include 14 | #include 15 | #include 16 | 17 | #include 18 | 19 | namespace commands { 20 | 21 | /// To avoid duplicate checks, we also include the warnings into the fingerprint 22 | /// system. 23 | using WarningFingerprint = rfl::NamedTuple>>>; 25 | 26 | } // namespace commands 27 | 28 | #endif // COMMANDS_WARNINGFINGERPRINT_HPP_ 29 | -------------------------------------------------------------------------------- /src/getml-app/src/config/MonitorConfig.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package config 9 | 10 | // MonitorConfig contains all variables related to the Monitor 11 | // that CAN be changed by the user. 12 | type MonitorConfig struct { 13 | AllowPushNotifications bool `json:"allowPushNotifications"` 14 | 15 | AllowRemoteIPs bool `json:"allowRemoteIPs"` 16 | 17 | LaunchBrowser bool `json:"launchBrowser"` 18 | 19 | HTTPPort int `json:"httpPort"` 20 | 21 | // TODO: Uncomment once we have a proper login. 22 | // HTTPSPort int `json:"httpsPort"` 23 | 24 | Log bool `json:"log"` 25 | 26 | ProxyURL string `json:"proxyUrl"` 27 | 28 | TCPPort int `json:"tcpPort"` 29 | 30 | Token string `json:"-"` 31 | } 32 | -------------------------------------------------------------------------------- /src/python-api/hatch_build.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | import os 10 | from pathlib import Path 11 | 12 | from hatchling.builders.hooks.plugin.interface import BuildHookInterface 13 | from wheel.bdist_wheel import get_platform 14 | 15 | getml_bin_path = Path(__file__).parent / "getml" / ".getML" 16 | 17 | 18 | class PlatformTag(BuildHookInterface): 19 | def initialize(self, version: str, build_data: dict) -> None: 20 | prefix = "py3-none-" 21 | if getml_bin_path.exists(): 22 | if platform := os.getenv("WHEEL_PLATFORM"): 23 | build_data["tag"] = prefix + platform 24 | else: 25 | build_data["tag"] = prefix + get_platform(archive_root=None) 26 | -------------------------------------------------------------------------------- /src/engine/include/engine/pipelines/load_fitted.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef ENGINE_PIPELINES_LOADFITTED_HPP_ 9 | #define ENGINE_PIPELINES_LOADFITTED_HPP_ 10 | 11 | #include "engine/dependency/PipelineTrackers.hpp" 12 | #include "engine/pipelines/Pipeline.hpp" 13 | 14 | namespace engine { 15 | namespace pipelines { 16 | namespace load_fitted { 17 | 18 | /// Loads the fitted pipeline from the hard disk. 19 | Pipeline load_fitted(const std::string& _path, const Pipeline& _pipeline, 20 | const dependency::PipelineTrackers& _pipeline_trackers); 21 | 22 | } // namespace load_fitted 23 | } // namespace pipelines 24 | } // namespace engine 25 | 26 | #endif // ENGINE_PIPELINES_LOADFITTED_HPP_ 27 | -------------------------------------------------------------------------------- /src/python-api/getml/hyperopt/kernels.py: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Code17 GmbH 2 | # 3 | # This file is licensed under the Elastic License 2.0 (ELv2). 4 | # Refer to the LICENSE.txt file in the root of the repository 5 | # for details. 6 | # 7 | 8 | 9 | """ 10 | Collection of kernel functions to be used by the 11 | hyperparameter optimizations. 12 | """ 13 | 14 | exp = "exp" 15 | """ 16 | An exponential kernel yielding non-differentiable 17 | sample paths. 18 | """ 19 | 20 | gauss = "gauss" 21 | """ 22 | A Gaussian kernel yielding analytic 23 | (infinitely--differentiable) sample paths. 24 | """ 25 | 26 | matern32 = "matern32" 27 | """ 28 | A Matérn 3/2 kernel yielding once-differentiable 29 | sample paths. 30 | """ 31 | 32 | matern52 = "matern52" 33 | """ 34 | A Matérn 5/2 kernel yielding twice-differentiable 35 | sample paths. 36 | """ 37 | 38 | 39 | _all_kernels = [matern32, matern52, exp, gauss] 40 | -------------------------------------------------------------------------------- /src/engine/src/multithreading/WeakWriteLock.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #include "multithreading/WeakWriteLock.hpp" 9 | 10 | namespace multithreading { 11 | 12 | WeakWriteLock::WeakWriteLock(const rfl::Ref& _lock) 13 | : lock_(_lock), released_(true), weak_released_(false) { 14 | lock_->weak_write_lock(); 15 | } 16 | /// WeakWriteLock with timeout. 17 | WeakWriteLock::WeakWriteLock(const rfl::Ref& _lock, 18 | const std::chrono::milliseconds _duration) 19 | : lock_(_lock), released_(true), weak_released_(false) { 20 | lock_->weak_write_lock(_duration); 21 | } 22 | 23 | WeakWriteLock::~WeakWriteLock() { unlock(); } 24 | 25 | } // namespace multithreading 26 | -------------------------------------------------------------------------------- /src/python-api/tests/engine/test_set_project.py: -------------------------------------------------------------------------------- 1 | import platform 2 | 3 | import pytest 4 | 5 | import getml 6 | 7 | 8 | @pytest.mark.skipif( 9 | platform.system() != "Linux", 10 | reason=( 11 | "Testing 'set_project_implicit_launch' is only supported on Linux " 12 | "(as launching getML from python is only supported with native binaries." 13 | ), 14 | ) 15 | @pytest.mark.skipif( 16 | getml.engine.is_monitor_alive(), 17 | reason=( 18 | "getML is already running. " 19 | "To test 'set_project_implicit_launch', please save your current session " 20 | "and stop the running getML instance." 21 | ), 22 | ) 23 | def test_set_project_implicit_launch(request): 24 | assert not getml.communication.is_monitor_alive() 25 | getml.set_project(request.node.name) 26 | assert getml.communication.is_monitor_alive() 27 | getml.engine.shutdown() 28 | -------------------------------------------------------------------------------- /src/engine/cmake/version.cmake: -------------------------------------------------------------------------------- 1 | function(get_version) 2 | if(DEFINED ENV{GETML_VERSION}) 3 | set(GETML_VERSION $ENV{GETML_VERSION} CACHE STRING "Version of the getML project" FORCE) 4 | message(STATUS "Using version ${GETML_VERSION} from environment variable") 5 | return() 6 | endif() 7 | 8 | if(EXISTS "../VERSION") 9 | file(STRINGS "../VERSION" _GETML_VERSION) 10 | set(GETML_VERSION ${_GETML_VERSION} CACHE STRING "Version of the getML project" FORCE) 11 | message(STATUS "Using version ${GETML_VERSION} from ../VERSION") 12 | return() 13 | endif() 14 | 15 | if(DEFINED CACHE{GETML_VERSION}) 16 | message(STATUS "Using version ${GETML_VERSION} from cache variable") 17 | return() 18 | endif() 19 | 20 | set(GETML_VERSION "0.0.0" CACHE STRING "Version of the getML project") 21 | message(STATUS "Using version ${GETML_VERSION}") 22 | 23 | endfunction(get_version) 24 | -------------------------------------------------------------------------------- /src/engine/include/database/QuerySplitter.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef DATABASE_QUERYSPLITTER_HPP_ 9 | #define DATABASE_QUERYSPLITTER_HPP_ 10 | 11 | #include 12 | #include 13 | 14 | namespace database { 15 | 16 | class QuerySplitter { 17 | public: 18 | /// Splits the query into its components. Also handles the DELIMITER syntax. 19 | static std::vector split_queries( 20 | const std::string& _queries_str); 21 | 22 | private: 23 | /// Trims the resulting queries and removes empty strings. 24 | static std::vector sanitize( 25 | const std::vector& _splitted); 26 | }; 27 | } // namespace database 28 | 29 | #endif // DATABASE_QUERYSPLITTER_HPP_ 30 | -------------------------------------------------------------------------------- /src/python-api/README.md: -------------------------------------------------------------------------------- 1 | # getML - Automated Feature Engineering for Relational Data and Time Series 2 | 3 | getML ([https://getml.com](https://getml.com)) is a tool for automating feature engineering on relational data and time series. Unlike similar tools, it includes a database Engine 4 | that has been customized for this very purpose. 5 | 6 | Because of this customized database Engine, it is very fast. In fact, it is 7 | between 60x to 1000x faster than other open-source tools for automated 8 | feature engineering. 9 | 10 | This is the official Python API for the getML Engine. 11 | 12 | For more information, visit the [getML documentation](https://getml.com) or explore the [Python API documentation](https://getml.com/latest/reference). 13 | 14 | ### Build 15 | 16 | To build the package install `hatch` 17 | ```bash 18 | pip install hatch 19 | ``` 20 | 21 | and run 22 | ```bash 23 | hatch build -t wheel 24 | ``` 25 | -------------------------------------------------------------------------------- /benchmarks/benchmarks/utils.py: -------------------------------------------------------------------------------- 1 | import logging 2 | from contextlib import contextmanager 3 | from typing import Callable, Generator 4 | 5 | from getml.engine import delete_project, set_project 6 | 7 | 8 | @contextmanager 9 | def project(name: str) -> Generator[None, None, None]: 10 | """ 11 | A context manager that ensures proper setup and teardown of a project and prevents caching. 12 | """ 13 | set_project(name) 14 | yield 15 | delete_project(name) 16 | 17 | 18 | @contextmanager 19 | def log_run( 20 | driver: Callable, ds_name: str, run: int, runs: int 21 | ) -> Generator[None, None, None]: 22 | """ 23 | A context manager for logging benchmark runs. 24 | """ 25 | logging.info( 26 | "Benchmarking %s on %s (run %i/%i)...", 27 | driver.__name__[6:], 28 | ds_name, 29 | run, 30 | runs, 31 | ) 32 | yield 33 | logging.info("Finished.") 34 | -------------------------------------------------------------------------------- /src/package-build-imports/jwks.pub.json: -------------------------------------------------------------------------------- 1 | {"keys":[{"alg":"RS256","e":"AQAB","kid":"+9t1ICrLlypXIww/+oiRsO4QqH+U8tsaklxr3FYiJa4=","kty":"RSA","n":"uHaKA6TVzsagf9fXTOk66Iad4CmZzk6IbMRQkZBrCGsofZB-bNA0UMSU1jumRfmkLRO6hroqmxBTvnwFMxkxo_fPTbVfpOu7MZuo-6BbOghcdDMKs8kkCs1RNonbauKRcrD018m1dTHAyFit9f3NmgdQEz1TovbR7XCmq53eWm2kf9gxonR7MHleM60h0h65ssskt7bHBWBLaEwF2fUg60hM6x8HPOO30F3eYDd6K2VeRxTc9z6RHCt0O5pv85FyPRrR3lFL_q_Lrr-2CUYylDSPMfgeTXbEm9Y3-6Gr9zAlmw4_fPwvvJspdZtr1GXuKQMNq82C-bEcAbD8h5G8xw","use":"sig"},{"alg":"RS256","e":"AQAB","kid":"pmmsghhzxpb0IO4HKAWV6WBuH6MCrWplxNLBDKaYcZg=","kty":"RSA","n":"x1yXdMm1AHM2-tdgQKVbpALUY8_LQaQCgfhqfz17tt96MBkPlx_NyVLd2KXK5yYX36dYme8f2Hfc3h75AlYzRcUoELRXvdtED6rWSOb5MviEDbCiI24dpDtkcMETnAtlI7yRLsaE3UAW9t8HWpcDM-oIaBZO7YbqlVN7e5uDBQ67kJ0kDAk3NrXby77l4DqbNcmJj_n-tpKq3Skh7EQeZcEPnklLYrYj-5-A3c_slBpGroEjWHHjLpS-5t7snWcFPfRdcgSI-_T6o0Q_7HfrVthT-7qJC-02s8s0bVNXFTyUR16kGxybDmor2pjhlRvfhByb9F56bhIvYxnC6lFS1Q","use":"sig"}]} -------------------------------------------------------------------------------- /src/engine/include/helpers/Endianness.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef HELPERS_ENDIANNESS_HPP_ 9 | #define HELPERS_ENDIANNESS_HPP_ 10 | 11 | #include 12 | 13 | namespace helpers { 14 | 15 | struct Endianness { 16 | /// Determines endianness of the system at runtime 17 | static bool is_little_endian() { 18 | unsigned int one = 1; 19 | char *c = reinterpret_cast(&one); 20 | return *c; 21 | } 22 | 23 | /// Reverses the byteorder of the value passed to it 24 | template 25 | static void reverse_byte_order(T *_val) { 26 | char *v = reinterpret_cast(_val); 27 | std::reverse(v, v + sizeof(T)); 28 | } 29 | }; 30 | 31 | } // namespace helpers 32 | 33 | #endif // HELPERS_ENDIANNESS_HPP_ 34 | -------------------------------------------------------------------------------- /src/engine/include/memmap/Page.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef MEMMAP_PAGE_HPP_ 9 | #define MEMMAP_PAGE_HPP_ 10 | 11 | #include 12 | 13 | namespace memmap { 14 | // ---------------------------------------------------------------------------- 15 | 16 | struct Page { 17 | Page(); 18 | 19 | ~Page() = default; 20 | 21 | /// The size of the allocated memory block, in number of pages, 22 | /// if this is the first page of an allocated memory block, zero 23 | /// otherwise. 24 | size_t block_size_; 25 | 26 | /// Whether the page is allocated. 27 | bool is_allocated_; 28 | }; 29 | 30 | // ---------------------------------------------------------------------------- 31 | } // namespace memmap 32 | 33 | #endif // MEMMAP_PAGE_HPP_ 34 | -------------------------------------------------------------------------------- /src/engine/include/multithreading/maximum.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef MULTITHREADING_MAXIMUM_HPP_ 9 | #define MULTITHREADING_MAXIMUM_HPP_ 10 | 11 | namespace multithreading { 12 | // ---------------------------------------------------------------------------- 13 | 14 | template 15 | struct maximum { 16 | public: 17 | maximum() = default; 18 | 19 | ~maximum() = default; 20 | 21 | // ----------------------------------------- 22 | 23 | T operator()(const T& _elem1, const T& _elem2) { 24 | return ((_elem1 > _elem2) ? (_elem1) : (_elem2)); 25 | } 26 | }; 27 | 28 | // ---------------------------------------------------------------------------- 29 | } // namespace multithreading 30 | 31 | #endif // MULTITHREADING_MAXIMUM_HPP_ 32 | -------------------------------------------------------------------------------- /src/engine/include/multithreading/minimum.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef MULTITHREADING_MINIMUM_HPP_ 9 | #define MULTITHREADING_MINIMUM_HPP_ 10 | 11 | namespace multithreading { 12 | // ---------------------------------------------------------------------------- 13 | 14 | template 15 | struct minimum { 16 | public: 17 | minimum() = default; 18 | 19 | ~minimum() = default; 20 | 21 | // ----------------------------------------- 22 | 23 | T operator()(const T& _elem1, const T& _elem2) { 24 | return ((_elem1 < _elem2) ? (_elem1) : (_elem2)); 25 | } 26 | }; 27 | 28 | // ---------------------------------------------------------------------------- 29 | } // namespace multithreading 30 | 31 | #endif // MULTITHREADING_MINIMUM_HPP_ 32 | -------------------------------------------------------------------------------- /src/getml-app/src/config/CommandLine.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package config 9 | 10 | // CommandLine contains all the configurations 11 | // that can only be passed via the command line, 12 | // but not via config.json. 13 | type CommandLine struct { 14 | ForceInstall bool 15 | 16 | HomeDir string 17 | 18 | InstallOnly bool 19 | 20 | ShowVersionOnly bool 21 | 22 | Stop bool 23 | 24 | Uninstall bool 25 | } 26 | 27 | // DefaultCommandLine is a constructor 28 | func DefaultCommandLine() *CommandLine { 29 | return &CommandLine{ 30 | ForceInstall: false, 31 | HomeDir: parseHomeDirFlag(), 32 | InstallOnly: false, 33 | ShowVersionOnly: false, 34 | Stop: false, 35 | Uninstall: false, 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/getml-app/src/tcp/createConnectionToEngine.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | package tcp 9 | 10 | import ( 11 | "net" 12 | "strconv" 13 | "time" 14 | ) 15 | 16 | // CreateConnectionToEngine creates a low-level socket connection to the getML Engine 17 | func createConnectionToEngine(port int) (*net.TCPConn, error) { 18 | 19 | tcpAddr, err := net.ResolveTCPAddr("tcp4", "localhost:"+strconv.Itoa(port)) 20 | 21 | if err != nil { 22 | return nil, err 23 | } 24 | 25 | for i := 0; i < 5; i++ { 26 | 27 | conn, err := net.DialTCP("tcp", nil, tcpAddr) 28 | 29 | if err == nil { 30 | return conn, nil 31 | } else if i == 4 { 32 | return nil, err 33 | } 34 | 35 | time.Sleep(time.Second) 36 | 37 | } 38 | 39 | return nil, err 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/engine/include/containers/ViewContent.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2024 Code17 GmbH 2 | // 3 | // This file is licensed under the Elastic License 2.0 (ELv2). 4 | // Refer to the LICENSE.txt file in the root of the repository 5 | // for details. 6 | // 7 | 8 | #ifndef CONTAINERS_VIEWCONTENT_HPP_ 9 | #define CONTAINERS_VIEWCONTENT_HPP_ 10 | 11 | #include "containers/DataFrameContent.hpp" 12 | 13 | #include 14 | #include 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | namespace containers { 22 | 23 | /// A format that is compatible with the data.tables API. 24 | using ViewContent = std::variant< 25 | DataFrameContent, 26 | rfl::NamedTuple, 27 | rfl::Field<"data", std::vector>>>>; 28 | 29 | } // namespace containers 30 | 31 | #endif // CONTAINERS_VIEWCONTENT_HPP_ 32 | --------------------------------------------------------------------------------