From 7a1306cca79d2e1b2fe3db8aafe0951866fd22b8 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 17 Apr 2024 07:16:41 +0000 Subject: [PATCH] Add changes for 79b75206a3fdce9e041605720dd4664593b676a4 --- .../py_experimenter/config/index.rst.txt | 2 +- .../database_connector_mysql/index.rst.txt | 5 +- .../experimenter/index.rst.txt | 2 +- .../usage/database_credential_file.rst.txt | 2 +- .../experiment_configuration_file.rst.txt | 2 + autoapi/py_experimenter/config/index.html | 2 +- .../database_connector_mysql/index.html | 6 +- .../py_experimenter/experimenter/index.html | 2 +- changelog.html | 137 +++++++++--------- installation.html | 2 +- objects.inv | Bin 7925 -> 7930 bytes searchindex.js | 2 +- usage/database_credential_file.html | 2 +- usage/experiment_configuration_file.html | 2 + 14 files changed, 86 insertions(+), 82 deletions(-) diff --git a/_sources/autoapi/py_experimenter/config/index.rst.txt b/_sources/autoapi/py_experimenter/config/index.rst.txt index 04316de2..19b5b829 100644 --- a/_sources/autoapi/py_experimenter/config/index.rst.txt +++ b/_sources/autoapi/py_experimenter/config/index.rst.txt @@ -61,7 +61,7 @@ Classes -.. py:class:: DatabaseCfg(provider: str, database_name: str, table_name: str, result_timestamps: bool, keyfields: List[Keyfield], resultfields: Dict[str, str], logtables: Dict[str, Dict[str, str]], logger: logging.Logger) +.. py:class:: DatabaseCfg(provider: str, use_ssh_tunnel: bool, database_name: str, table_name: str, result_timestamps: bool, keyfields: List[Keyfield], resultfields: Dict[str, str], logtables: Dict[str, Dict[str, str]], logger: logging.Logger) Bases: :py:obj:`Cfg` diff --git a/_sources/autoapi/py_experimenter/database_connector_mysql/index.rst.txt b/_sources/autoapi/py_experimenter/database_connector_mysql/index.rst.txt index dfb00267..df1da169 100644 --- a/_sources/autoapi/py_experimenter/database_connector_mysql/index.rst.txt +++ b/_sources/autoapi/py_experimenter/database_connector_mysql/index.rst.txt @@ -17,14 +17,11 @@ Classes -.. py:class:: DatabaseConnectorMYSQL(database_configuration: omegaconf.OmegaConf, use_codecarbon: bool, credential_path: str, use_ssh_tunnel: bool, logger: logging.Logger) +.. py:class:: DatabaseConnectorMYSQL(database_configuration: py_experimenter.config.DatabaseCfg, use_codecarbon: bool, credential_path: str, logger: logging.Logger) Bases: :py:obj:`py_experimenter.database_connector.DatabaseConnector` - Helper class that provides a standard way to create an ABC using - inheritance. - .. py:attribute:: _prepared_statement_placeholder :value: '%s' diff --git a/_sources/autoapi/py_experimenter/experimenter/index.rst.txt b/_sources/autoapi/py_experimenter/experimenter/index.rst.txt index bd5858a4..0af1d152 100644 --- a/_sources/autoapi/py_experimenter/experimenter/index.rst.txt +++ b/_sources/autoapi/py_experimenter/experimenter/index.rst.txt @@ -17,7 +17,7 @@ Classes -.. py:class:: PyExperimenter(experiment_configuration_file_path: str = os.path.join('config', 'experiment_configuration.yml'), database_credential_file_path: str = os.path.join('config', 'database_credentials.yml'), use_ssh_tunnel: bool = False, table_name: str = None, database_name: str = None, use_codecarbon: bool = True, name='PyExperimenter', logger_name: str = 'py-experimenter', log_level: Union[int, str] = logging.INFO, log_file: str = './logs/py-experimenter.log') +.. py:class:: PyExperimenter(experiment_configuration_file_path: str = os.path.join('config', 'experiment_configuration.yml'), database_credential_file_path: str = os.path.join('config', 'database_credentials.yml'), use_ssh_tunnel: Optional[bool] = None, table_name: str = None, database_name: str = None, use_codecarbon: bool = True, name='PyExperimenter', logger_name: str = 'py-experimenter', log_level: Union[int, str] = logging.INFO, log_file: str = './logs/py-experimenter.log') Module handling the initialization, execution and collection of experiments and their respective results. diff --git a/_sources/usage/database_credential_file.rst.txt b/_sources/usage/database_credential_file.rst.txt index 88d27ee0..d868cb62 100644 --- a/_sources/usage/database_credential_file.rst.txt +++ b/_sources/usage/database_credential_file.rst.txt @@ -19,7 +19,7 @@ Below is an example of a database credential file, that connects to a server wit server: example.mysqlserver.com However, for security reasons, databases might only be accessible from a specific IP address. In these cases, one can use an ssh jumphost. This means that ``PyExperimenter`` will first connect to the ssh server -that has access to the database and then connect to the database server from there. This is done by adding an additional ``Ssh`` section to the database credential file. +that has access to the database and then connect to the database server from there. This is done by adding an additional ``Ssh`` section to the database credential file, and can be activated either by a ``PyExperimenter`` keyword argument or in the :ref:`experimenter configuration file <_experiment_configuration_file>`. The following example shows how to connect to a database server using an SSH server with the address ``ssh_hostname`` and the port ``optional_ssh_port``. .. code-block:: yaml diff --git a/_sources/usage/experiment_configuration_file.rst.txt b/_sources/usage/experiment_configuration_file.rst.txt index 6c1de09f..ef11dbcb 100644 --- a/_sources/usage/experiment_configuration_file.rst.txt +++ b/_sources/usage/experiment_configuration_file.rst.txt @@ -14,6 +14,7 @@ The experiment configuration file is primarily used to define the database backe Database: provider: sqlite database: py_experimenter + use_ssh_tunnel: False table: name: example_general_usage keyfields: @@ -69,6 +70,7 @@ The ``Database`` section defines the database and its structure. - ``provider``: The provider of the database connection. Currently, ``sqlite`` and ``mysql`` are supported. In the case of ``mysql`` an additional :ref:`database credential file ` has to be created. - ``database``: The name of the database to create or connect to. +- ``use_ssh_tunnel``: Flag to decide if the database is connected via ssh as defined in the :ref:`database credential file `. This is ignored if ``sqlite`` is chosen as provider. Optional Parameter, default is False. - ``table``: Defines the structure and predefined values for the experiment table. - ``name``: The name of the experiment table to create or connect to. diff --git a/autoapi/py_experimenter/config/index.html b/autoapi/py_experimenter/config/index.html index 7ce30824..27f16603 100644 --- a/autoapi/py_experimenter/config/index.html +++ b/autoapi/py_experimenter/config/index.html @@ -184,7 +184,7 @@

Classes
-class py_experimenter.config.DatabaseCfg(provider: str, database_name: str, table_name: str, result_timestamps: bool, keyfields: List[Keyfield], resultfields: Dict[str, str], logtables: Dict[str, Dict[str, str]], logger: logging.Logger)
+class py_experimenter.config.DatabaseCfg(provider: str, use_ssh_tunnel: bool, database_name: str, table_name: str, result_timestamps: bool, keyfields: List[Keyfield], resultfields: Dict[str, str], logtables: Dict[str, Dict[str, str]], logger: logging.Logger)

Bases: Cfg

Class for the configuration of the database connection. In addition to provider, database_name, and table_name, the class also defined the structure of tables in the keyfields, resultfields, and logtables attributes.

diff --git a/autoapi/py_experimenter/database_connector_mysql/index.html b/autoapi/py_experimenter/database_connector_mysql/index.html index da66194c..cd6d2d16 100644 --- a/autoapi/py_experimenter/database_connector_mysql/index.html +++ b/autoapi/py_experimenter/database_connector_mysql/index.html @@ -123,16 +123,14 @@

Classes

DatabaseConnectorMYSQL

-

Helper class that provides a standard way to create an ABC using

+

-class py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL(database_configuration: omegaconf.OmegaConf, use_codecarbon: bool, credential_path: str, use_ssh_tunnel: bool, logger: logging.Logger)
+class py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL(database_configuration: py_experimenter.config.DatabaseCfg, use_codecarbon: bool, credential_path: str, logger: logging.Logger)

Bases: py_experimenter.database_connector.DatabaseConnector

-

Helper class that provides a standard way to create an ABC using -inheritance.

_prepared_statement_placeholder = '%s'
diff --git a/autoapi/py_experimenter/experimenter/index.html b/autoapi/py_experimenter/experimenter/index.html index 9a5dd319..5f1ba0d9 100644 --- a/autoapi/py_experimenter/experimenter/index.html +++ b/autoapi/py_experimenter/experimenter/index.html @@ -129,7 +129,7 @@

Classes
-class py_experimenter.experimenter.PyExperimenter(experiment_configuration_file_path: str = os.path.join('config', 'experiment_configuration.yml'), database_credential_file_path: str = os.path.join('config', 'database_credentials.yml'), use_ssh_tunnel: bool = False, table_name: str = None, database_name: str = None, use_codecarbon: bool = True, name='PyExperimenter', logger_name: str = 'py-experimenter', log_level: int | str = logging.INFO, log_file: str = './logs/py-experimenter.log')
+class py_experimenter.experimenter.PyExperimenter(experiment_configuration_file_path: str = os.path.join('config', 'experiment_configuration.yml'), database_credential_file_path: str = os.path.join('config', 'database_credentials.yml'), use_ssh_tunnel: bool | None = None, table_name: str = None, database_name: str = None, use_codecarbon: bool = True, name='PyExperimenter', logger_name: str = 'py-experimenter', log_level: int | str = logging.INFO, log_file: str = './logs/py-experimenter.log')

Module handling the initialization, execution and collection of experiments and their respective results.

diff --git a/changelog.html b/changelog.html index f3cb5790..933202a5 100644 --- a/changelog.html +++ b/changelog.html @@ -69,59 +69,60 @@
  • Changelog -
    -

    Fix

    +
    +

    Fix

    • Booleans have been added as strings to the database table in SQLite. This has been fixed by adding a converting the values accordingly before writing them to the database.

    • Bugfix, where the same experiment has been pulled multiple times when using n_jobs > 1.

    • @@ -192,8 +197,8 @@

      Fix

      v1.4.0 (20.02.2024)

      -
      -

      Feature

      +
      +

      Feature

      -
      -

      Fix

      +
      +

      Fix

      • Fix a problem when executing fill_table that caused some entries to occur twice.

      • Temporary CodeCarbon files are automatically removed at termination.

      • @@ -211,15 +216,15 @@

        Fix

        v1.3.2 (23.01.2024)

        -
        -

        Feature

        +
        +

        Feature

        • Add random_order parameter to PyExperimenter.execute() to allow for random order of experiments.

        • Add pause functionality to PyExperimenter to allow for pausing the execution of experiments, which can be continued later on.

        -
        -

        Fix

        +
        +

        Fix

        • Hotfix cluster execution where multiple runners could pull the same experiment.

        • Update logger documentation to reflect the changes of the improved logging.

        • @@ -228,8 +233,8 @@

          Fix

          v1.3.1 (24.07.2023)

          -
          -

          Feature

          +
          +

          Feature

          -
          -

          Fix

          +
          +

          Fix

          • Bugfix escaping of values in sql statements.

          @@ -281,8 +286,8 @@

          Fix<

          v1.2.1 (21/04/2023)

          -
          -

          Feature

          +
          +

          Feature

          • Improve performance addding new experiments to database table

          • Create issue template

          • @@ -292,23 +297,23 @@

            Feature

          v1.2.0 (04/04/2023)

          -
          -

          Feature

          +
          +

          Feature

          • Added logtables functionality, allowing to incrementally log information during the execution of an experiment, which is described in detail in the documentation.

          • Documentation of the usage of PyExperimenter has been reworked in large parts.

          -
          -

          Examples

          +
          +

          Examples

          • An additional logtable example has been added.

          • An issue of the example notebook has been fixed causing them to fail due to missing directories.

          • Improved general example to cover extended functionality of PyExperimenter.reset_experiments().

          -
          -

          Fix

          +
          +

          Fix

          • Start date is now set when pulling an experiment.

          • Supported Python version is now >= 3.9.

          • @@ -328,8 +333,8 @@

            Tests

          v1.1.0 (21/11/2022)

          -
          -

          Feature

          +
          +

          Feature

          -
          -

          Examples

          +
          +

          Examples

          • Updated due to latest changes and renamings

          • Referenced documentation within examples

          -
          -

          Fix

          +
          +

          Fix

          • Bugfix of wrong column order when writing to DB

          • Unfavorable pulling experiments has been changed (see above)

          -
          -

          Tests

          +
          +

          Tests

          • Add workflow to automatically check tests
              @@ -412,8 +417,8 @@

              Tests

          v1.0.0 (04/09/2022)

          -
          -

          Feature

          +
          +

          Feature

          -
          -

          Examples

          +
          +

          Examples

          • Added a Jupyter notebook explaining the general usage of the PyExperimenter.

          • Added a Jupyter notebook explaining how to fill the database table with a conditional experiment grid.

          -
          -

          Fix

          +
          +

          Fix

          • Added checked when resetting a table, that only missing rows are added and no duplicated rows are created.

          • Fixed writing of string containing quotation marks to the database table.

          -
          -

          Tests

          +
          +

          Tests

          • Added tests for all key components of PyExperimenter.

          diff --git a/installation.html b/installation.html index 344b3fe9..02b72bda 100644 --- a/installation.html +++ b/installation.html @@ -104,7 +104,7 @@

          Thereby, the following dependencies are automatically installed:

          [tool.poetry]
           name = "py-experimenter"
          -version = "1.4.2a0"
          +version = "1.4.2a1"
           description = "The PyExperimenter is a tool for the automatic execution of experiments, e.g. for machine learning (ML), capturing corresponding results in a unified manner in a database."
           authors = [
               "Tanja Tornede <t.tornede@ai.uni-hannover.de>",
          diff --git a/objects.inv b/objects.inv
          index 06fad890d2525a1552c560d7fc825c09a4c1cc4e..ca79961bd646ab8d5422db4637e7b492e58a3524 100644
          GIT binary patch
          delta 3187
          zcmV-(42<*jJ^DS6iU;fkN76{PPqC395`Wx~;Y}&>DaYfbOmQjj`AnvKCQv??DW8i1
          zekap@#|ikoO!2+I=MOUF4JPl9J!_$*+c_OKdW9jcFi<8A^@Wbi(@#)Diy7V7Rh$R$P
          zhv-RTh-L7@@q9=_Z&VwILmdB^30*H6v>4)$HD=p;^
          zJ!uT_4wl7-;}Z6#Vb|1s?+X1w;R!2+@L7bz|PtYT)0x^(=5a*aESap{I2wVrr!=wPwlg1FJrG-`ZOaP(k
          zKkYdr=jWdn@c)fje9-ymEeTyEFG%pOVE6@KqjdC;JXGMBqubp5&*b4AJX2cm5B%O8
          zveM^w>O--M`gd?wC!wbeqJLQ}{$8z~(UB-K#^!yh`2)RN#tFiQZ`6-P5-*bcW&hB}
          zkt<p|X6XjZVf9kh9-f?uFusqDc~_X2F<%+Uo@zaZ+}pX%r_*d*xl@vz#0u>CGA
          zY-VDOT>2!j+1wA{{h+-cH22k=uW$bpQuo7l3NS>HrBMV;35Qe(hktDehq#0-SA+Va
          z6ybBA>^(6x_)56GZ2G9w9-?x!<|8u3^b*w$b3Yrcu$QPaL^&G`ooy}l@@a-B;bPF;
          z4f)EvG
          zXVfP!eVf)H@O{(n4Y=M->k8N&n)d@tH*IzTEQghQ0ETy}&3``&mt4aoKw36aCw}P+
          zkv6OLsJmXbWm@i;c1;Wio%KscIee$#bQ57zhG_&}rA%qPX>5l`+Z~)QK7jY}R<~q-0P4_G
          zGY~?ji$q$z+1^miLU>u*p<0Uil7?Tnxd6Cf+@Z>;-C}V3{3N$aM1n>{t^E+jfuB(*
          zU_B80*w%(GTf?76&0sAPv@-23O^s06CJ_sSPyp|>L>0~~gtlqCX$>|t*i!AD(hzZ-
          zw%H)@9Dgsj+0#0Lq>wzSU9B;5`mQlY&X(xvO3>UPJjY!Pp`7JxO&;8*8>Nz^J>HGP
          zuz-a+D_fA}V`O|4<9z|p=U?H^pF7#3J-isAUmPt;pr@Zbg;j>@bdfw9SgSK*5$wgU
          z*;7zuxPp?)9Aif${dAZg;2U3oj@nZLVCvzs4u4^}!E12Xhp+Kq!E*)R!*zf!N+Dw>
          z0|#`hb&0P8U*VNzrvn>sbX5s(tffqB393UL#^5_hvm8I1C@I}0h59PU0`)s|3$~=~
          zt>CZv7SESM9;3pFv-M%e-h|8Xf~oiwUkpCc7vJz6N$N@b3#9982M~Sz@!P+bK@Z{I
          zD1U25(fZpydxCFFkAN{Eq8`(c;K#uQ+UgVW1;yMSs)nVACJIj7f?nM4B{5C$PZpWf
          zUCikfb!DtQZr?^0u*kqlS;9w`fljWIrQrHxTi6W-SLiyecGMil3p>ydU*;NOh%!v4
          z$r|iSM(fwyz&>4*A3gD-`ft8kE77VKAb$m@XZj9`l35Hx0gQf2E(U*+i%c`)@?e?5
          zQcC9X0_0Hva9ap#VV>asC?IeYZ^&iblES)rlLW{3A2#~n8hH|w;CY&Zpve=X0pEsW
          z=0m5>aHQqr%`tufr%sXYcGsgp+_=6-pqb7iG3&)S?XnTkZmZ9GU{A+zh!wK9an|eT$TX@`u%dx4q
          z1H*UP^-`cw9K34A2gh~HtnAsNB`IR7){TjXjx3xR
          zW~lMv&UZ%HUbpNPe1_7pw|GeaDD`Dn=3t#{l65#v;VE;Np-(yZ7rYzX)pvtioMDsY
          z5U2TIG#SlWa&PXEZE~q(a*389K&4{vOv&I`@cTm*CDe8bwzYF5Yv=8BSbv0HX7hG(
          zOzQ4CC4hIq1}~rTPwvslofnf
          zS?NsFUFg}kz`ugebxsjgN7`mA*>AF97x6{{3jQ!nwN2txcTwHDZVGw2du&_X{GgG8
          z+_p#R4r!09RAz2#rQpOe_lPgsKVrja*IbO==GDcoGU@*n7DzL@k1TlXUeShjTKb+o4eGr(({T{
          zzc{mq^i5o(^~Se>60g_>llesXtccO}?&<|=#Mv6jw-+fGvwmmaJ*Zm6G3Mdcf>WyBXdXp7!w@Srdavnz
          zgj7PP64olCmqN|u(YK7{&`xGW)`(ZK6`)ojtQVDe>p+xg_gRlPo=xRgPGHTP))+*KVGusNb=0f&Kv7F*2G
          zT5aJ<4F!w#46M|58c>kJ-3BxQUKU^JFS65E%IodCwH^I+pmsW-yG!OExr;;0>37|Q
          zk?t0?F2Pk$4qN;y!#@`7l1kl(hF5k!{L^9YS
          z+AmP1b=JPF@lm0r^1=k@?X_i1I}7Xgz~)>2sz!H6r`AeQHy6g9$E3{Gz2(Yui3VXb
          z3r5PzMZ#Gfvm{!RDSs4ZtIwKgVi;JN%_uPt6K7HtH$d_QLpe1bFyi{9QvwEZqUTx??RN7G3
          zyg1SNT3g&07KMlEF?qx~J>JGE>l*DozXtYN^gBG`U8&x+C{*(9oFi$^B>*
          z;B7sO7QY|SMKoy-pWtnXfuXyNZct8Ri>f=D6iSC>eBxdJ?pQ#GC12sA3Vm#8w3LM2
          ZR`Lu~g?K3keHB!T-Qa)T{6A@Pl66B7O&S0I
          
          delta 3182
          zcmV-!43YEtJ@q}1iU+e797!YDPO*_85`P>_DX0i_DN|kwl+R?!XWUYPH_v6-=bV7w
          z$rRrSe10!eelPO*gG~Da$LAkpia!MR0H5eEQvFe;`XfJFS@8-=cPXooP=L?WQdTRW
          z0F$Yu)a50QDOq(qVJd6lQTt#o-~Gd4}YULJw7?(KtO5qKN$Uw3J@dd@23#r1VWr2pZv&$
          zKx)g=nq4WxKpH}vB8cT_T^3A;W$o8FQaY1C45T5%vWemxL7cH6PLW^A5It!Oaf+i5
          zK%Ak_;eXyMK@6lJ#2F?E{`dWY4*~sxp?^?>=t*M;6vg@CS74M76`*&qgck<=YHV>P16mTZ_H4m?6rW7<6}oezHw;
          zSKVzi867gVfh+omQZ$D+l^4QIgL|@1TNNEXkZ8^@`EM&V@T#*mDBkXlynG+Q9u&~-
          zp^P4ZQhVLk=r`8Ckbir@S9DJe?I?PDEWjhq>mPRQbjVy6RB-0#BW15^t;5^e9(9{)
          z%!Auz4Nu8u<^F`>pK52q!kyNWFr2a9jj-Hq`;hu(h;Qn9+jbdsJqvL?n^ygd`UIwL
          z(>escZ`!>9*Sl$50oz0Ket_ww%}#*juyPN;@J_Y)XW^1-xPJsl%Vz4tFP$OMX4M{b
          z*Xy=S%RSSsiQ%BLe(5NO?=+llB80QiWka1+6&D-OBeimCW^Tig0fY*CqygZfrLZc)!Tt1oW$VU|iG
          zl}@@pN+G>Qwtoqll>7=%N9!$Ee^VTl^ns5quxe99@Grr5V+5=^))=BHjx&aM)5aJB
          zC+v?ehVHgw3tZj8Y!kK;dakyEi?5BLwt7sgI)>f&$iL}b_}DY^?tA2(&8~asXmQwU
          zv_J#bZlQ9o$vNyL?F{*JGTO)J-K$CtYHvnkt$w?M(|^7P@IKzLmh2Be9hzzeLg;jn
          zNUJy78>(3dFKatgOHp6a@C!E=05^;~R5`U<433|lBCgXm8zi3N
          z5nWvgnmdH&xT_(Qvz#5qgZp%&RI;?kn~E3~uux}Z
          z3(|ayjIUz6F97=dEByI$CwsJq7en-mqeThy^s}e1%5a@7l7|Cpb!IGrz4$eI3aSiO
          zP;!}L?1*HM4)X(i<15gKd1?SmJ$z&#EH`)!4uAXbH6AQ@t^jDglnQl!+}tb;!dQdFA^aOD*
          z+ka%N2IJiJteImY~nEON3uoTfm!Kqu&iyOWqrYZi(B9pp{IlZE;
          zjJ3z@+sFbI8CWSx_~Y}fxBc=4~TLLkNa>rHubi^8E;EH
          zV49#_3N(s?SIzj~xQ>~XJ$tkyMQqi&F%i*`R^LID~ZHVS*B@Wdcu-vx9uK<
          zQ)+A&u5Q=GDg~!Dt;h6%tExvYUVqGLpC!h+0TZ01h1av%$FN=|;6h@Z5T(ovHD28L
          z&M4dKmfeESP+ImDF9`r;unfx_tdmW$4#$}|Wezj+DF^?8cZ0k7Zg7heWwIRNG#`v6
          zqghMt&0VrhE|p9!(J}<6R1BUe89WPqf2g8_+D^f?cCKXYyqyk<@XKu8PJfO`-F>G7
          z@GiJO38{m-yI%uxK4E9CJtC!74TVD)u~OZ9DpgnsxU^lB`5|j-rTB-kf)6VzD~Y-b
          zJsTJJSMa$`4WjBu+l(dqO;+q8-bg^fAEv3cNxbSVs(aT>Ay0RYZL6CfG;)yJ_DJ0!
          z?U9wr%x$d{oLC0`1TP!SN`J#`%@hF7>ZVN}^V}HooL+4l={2hp3awHrI&6!&MFydH
          zh5FKi7}gS1nEX&~@dyRIesY#`CCD5TH}EoksDt}Vnbp3rf+~M=mwHxuUa{&IXBLsZ
          ziHo$}_%=}D729AkpD3RdG1}f;yk{@rH59D!N1L^KYt#fk)ncjc`Vt_ZiPwUAu
          z$u}sHXD4l`KcnXv=;kIeI2>75O^O>8aGoyPk+HOfQ>!$oz!c9Y1FG&}6&)XUFXi9q
          zBqu2g%3flfH>&4NtA9AgJfm80*z_CC^99v>m~@h~dY)`OXEe?a6lQZ)K^0`Z)=O8V
          z0yZhrvqGW}6(1B6Q1w%B)Hb=PK+wl!Jwf4TbgeYwGqtyDjpl@*RfS*ZR3?OwN(fcL
          zT4nT7sJT4)ma!b#$*jm4@k+J=)GCDaqB3tCh%yad0luM%@PA*hEmB*r?og0!*ysut
          zQz1>{M-(mKFp$t%$s8niafmtnuDdYO-J;ed
          z*lPvs)J3eVI)87wjXKhg%jm}0=C``yZQ?>y^)Jr&J3)m28XLvs8@Yr?23th?1AdF_gNO`$P
          zIICkk|0h})5l_Vl&95d;CJSBT7SU*yL~AmI!ff?fGk;AC11qx`B?h8=Vu=NBJb}dW
          zKye;P<*+`b^|@M6Zy`>8=$+D1o5Bhk>?*ouvbEk^Z8nF&Ki{<5PV2^$xm8uPH}!2#
          zkhzbtF|E28b=1PEY!m#y|M}n1hB2=r`$+QutDzaKo!5b^st2c;=VQ0_J(cF
          zTWaE;-ha$igEM!)sXq67%9CAX+zY@R3kb2~D|}R;k1dUslF-{qo`I?m
          UFXf=Gf@-lF{Lh>J2VFFOPPu;_SpWb4
          
          diff --git a/searchindex.js b/searchindex.js
          index c8db69bc..b906ee1b 100644
          --- a/searchindex.js
          +++ b/searchindex.js
          @@ -1 +1 @@
          -Search.setIndex({"docnames": ["3rd-party", "authors", "autoapi/index", "autoapi/py_experimenter/config/index", "autoapi/py_experimenter/database_connector/index", "autoapi/py_experimenter/database_connector_lite/index", "autoapi/py_experimenter/database_connector_mysql/index", "autoapi/py_experimenter/exceptions/index", "autoapi/py_experimenter/experiment_status/index", "autoapi/py_experimenter/experimenter/index", "autoapi/py_experimenter/index", "autoapi/py_experimenter/result_processor/index", "autoapi/py_experimenter/utils/index", "changelog", "cite", "examples/example_conditional_grid", "examples/example_general_usage", "examples/example_logtables", "examples/example_pause_and_contiue", "examples/index", "help", "how-to-contribute", "index", "installation", "issues", "license", "release-version", "usage/database_credential_file", "usage/distributed_execution", "usage/execution", "usage/experiment_configuration_file", "usage/experiment_function", "usage/index"], "filenames": ["3rd-party.rst", "authors.rst", "autoapi/index.rst", "autoapi/py_experimenter/config/index.rst", "autoapi/py_experimenter/database_connector/index.rst", "autoapi/py_experimenter/database_connector_lite/index.rst", "autoapi/py_experimenter/database_connector_mysql/index.rst", "autoapi/py_experimenter/exceptions/index.rst", "autoapi/py_experimenter/experiment_status/index.rst", "autoapi/py_experimenter/experimenter/index.rst", "autoapi/py_experimenter/index.rst", "autoapi/py_experimenter/result_processor/index.rst", "autoapi/py_experimenter/utils/index.rst", "changelog.rst", "cite.rst", "examples/example_conditional_grid.ipynb", "examples/example_general_usage.ipynb", "examples/example_logtables.ipynb", "examples/example_pause_and_contiue.ipynb", "examples/index.rst", "help.rst", "how-to-contribute.rst", "index.rst", "installation.rst", "issues.rst", "license.rst", "release-version.rst", "usage/database_credential_file.rst", "usage/distributed_execution.rst", "usage/execution.rst", "usage/experiment_configuration_file.rst", "usage/experiment_function.rst", "usage/index.rst"], "titles": ["Usage of 3rd Party Dependencies", "Authors", "API Reference", "py_experimenter.config", "py_experimenter.database_connector", "py_experimenter.database_connector_lite", "py_experimenter.database_connector_mysql", "py_experimenter.exceptions", "py_experimenter.experiment_status", "py_experimenter.experimenter", "py_experimenter", "py_experimenter.result_processor", "py_experimenter.utils", "Changelog", "Cite PyExperimenter", "Example: Conditional Parameter Grids", "Example: General Usage", "Example: Usage of Logtables", "Example: Pause and Continue", "Examples", "Need Help?", "How to Contribute", "Welcome to PyExperimenter\u2019s documentation!", "Installation", "Creating an Issue", "License", "Release Version", "Database Credential File", "Distributed Execution", "Executing PyExperimenter", "Experiment Configuration File", "Experiment Function", "Usage"], "terms": {"thi": [0, 2, 8, 9, 11, 12, 13, 15, 16, 17, 18, 21, 22, 25, 27, 28, 29, 30, 32], "part": [0, 13, 30, 31], "document": [0, 2, 13, 15, 16, 17, 23, 25, 30], "refer": [0, 11, 13, 21], "need": [0, 13, 15, 16, 17, 18, 21, 24, 27, 28, 29], "us": [0, 3, 4, 6, 9, 11, 13, 14, 15, 16, 17, 18, 21, 22, 24, 25, 26, 27, 28, 29, 30, 32], "activ": [0, 15, 17, 21, 26], "dure": [0, 9, 13, 29, 30, 31, 32], "develop": [0, 13, 23, 26], "It": [0, 13, 15, 16, 21, 22, 30], "contain": [0, 2, 3, 9, 13, 15, 16, 21, 24, 27, 29, 30], "short": 0, "descript": [0, 21, 23, 24, 30], "an": [0, 3, 4, 6, 9, 11, 13, 15, 16, 17, 18, 21, 22, 25, 27, 29, 30, 31, 32], "explan": [0, 15, 16, 17, 30], "how": [0, 13, 17, 18, 20, 24, 27, 29, 30], "i": [0, 9, 12, 13, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "meant": [0, 15, 16, 31], "pyexperiment": [0, 3, 9, 13, 18, 20, 21, 23, 26, 27, 28, 30, 32], "manag": [0, 22, 29], "packag": [0, 13, 16, 23], "tool": [0, 22, 23], "python": [0, 13, 15, 17, 18, 21, 23, 26], "allow": [0, 13, 22], "declar": 0, "your": [0, 21, 24, 26, 27, 31], "project": [0, 13, 21, 22, 26], "instal": [0, 13, 15, 16, 17, 18, 21, 22, 26], "updat": [0, 9, 13, 26], "them": [0, 9, 11, 13, 15, 28], "you": [0, 11, 14, 15, 16, 17, 18, 20, 21, 24, 27, 28, 29, 30, 31], "also": [0, 3, 16, 17, 21, 24, 29, 30, 31], "build": [0, 9, 13, 21, 23, 26], "which": [0, 9, 13, 15, 16, 21, 28, 29, 30, 32], "can": [0, 9, 11, 13, 15, 16, 17, 18, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32], "upload": 0, "repositori": [0, 21, 23, 26], "via": [0, 9, 13, 15, 16, 22, 23, 29, 30], "pip": [0, 15, 16, 17, 18, 21, 23, 26], "For": [0, 9, 15, 17, 29], "instruct": 0, "further": [0, 15, 16, 17, 20, 21, 27, 29, 32], "command": [0, 21], "than": [0, 21], "ones": 0, "list": [0, 3, 4, 5, 6, 9, 11, 12, 13, 16, 29, 30, 32], "below": [0, 18, 27, 30, 32], "pleas": [0, 15, 17, 18, 20, 21, 24, 29, 30], "make": [0, 9, 16, 21, 28, 29], "sure": [0, 21, 28, 29], "follow": [0, 9, 11, 14, 21, 23, 25, 27, 28, 29, 30, 31, 32], "describ": [0, 13, 16, 21, 24, 29, 30], "step": [0, 15, 16, 18, 21, 24, 26, 30, 32], "do": [0, 9, 15, 20, 21, 25, 27, 29, 31], "NOT": [0, 25], "conda": [0, 21, 26], "itself": [0, 13], "add": [0, 9, 13, 21, 24, 26], "path": [0, 9, 12, 15, 16, 17, 18, 27, 28, 29, 30, 31], "If": [0, 9, 14, 15, 17, 20, 21, 26, 27, 29], "check": [0, 3, 9, 13, 20, 21, 26, 29, 30], "out": [0, 25, 29], "To": [0, 9, 15, 16, 17, 18, 21, 24, 27, 28, 29], "end": [0, 9, 16, 21, 30], "navig": [0, 21], "git": [0, 21], "folder": [0, 21, 30], "execut": [0, 4, 9, 13, 21, 22, 23, 26, 27, 31, 32], "instll": 0, "excact": 0, "version": [0, 13, 15, 16, 17, 18, 23], "new": [0, 8, 13, 21, 24, 26, 28, 29], "core": [0, 15, 16, 17, 18, 23], "first": [0, 9, 13, 15, 16, 17, 18, 21, 26, 27, 31], "latest": [0, 13, 26], "pyproject": [0, 13], "toml": [0, 13], "file": [0, 9, 12, 13, 21, 22, 25, 26, 28, 32], "want": [0, 11, 16, 18, 21, 24, 29, 30], "specif": [0, 27], "second": [0, 18, 30], "package_nam": 0, "A": [0, 9, 24, 25, 29, 30, 32], "ad": [0, 9, 13, 15, 16, 17, 18, 27, 29], "given": [0, 3, 9, 11, 13, 15, 16, 17, 18, 27, 29, 30, 31], "dev": [0, 23], "group": [0, 23], "The": [0, 9, 11, 13, 14, 15, 16, 17, 21, 22, 23, 25, 27, 28, 29, 30, 31, 32], "lock": [0, 13], "automat": [0, 13, 23, 26, 30, 32], "when": [0, 9, 13, 16, 27, 30], "so": [0, 9, 15, 24, 25, 29], "therefor": [0, 9, 13, 16, 21, 29], "tri": [0, 9], "resolv": 0, "manual": [0, 21, 22, 29, 32], "most": [0, 16], "current": [0, 13, 29, 30], "libari": 0, "easili": [0, 13, 14, 15, 16, 17, 23, 29, 32], "major": [0, 26], "minor": [0, 26], "patch": [0, 26], "prereleas": [0, 26], "final": [0, 13, 21, 31, 32], "creat": [0, 2, 3, 4, 6, 8, 9, 13, 15, 16, 17, 18, 20, 22, 26, 28, 30, 32], "dist": 0, "built": [0, 9, 21], "tanja": [1, 14, 23, 25], "torned": [1, 14, 21, 23, 25], "alexand": [1, 14, 23, 25], "luka": [1, 14, 16, 23, 25], "fehr": [1, 14, 23, 25], "helena": [1, 14, 23, 25], "graf": [1, 14, 23, 25], "jona": [1, 14, 23, 25], "hansel": [1, 14, 23, 25], "felix": [1, 14, 23, 25], "mohr": [1, 14, 23, 25], "marcel": [1, 14, 23, 25], "wever": [1, 14, 23, 25], "karlson": 1, "pfannschmidt": 1, "gehr": [1, 14, 23, 25], "page": [2, 13, 14], "auto": [2, 16, 17, 18], "gener": [2, 8, 13, 15, 17, 19, 21, 29, 30, 32], "1": [2, 9, 15, 16, 17, 18, 23, 27, 28, 29, 30], "py_experiment": [2, 15, 16, 17, 18, 21, 23, 28, 29, 30, 31], "config": [2, 4, 9, 10, 11, 12, 15, 16, 17, 18, 26, 27, 29, 30], "database_connector": [2, 5, 6, 10, 11], "database_connector_lit": [2, 10], "database_connector_mysql": [2, 10], "except": [2, 9, 10, 13, 21], "experiment_statu": [2, 9, 10], "experiment": [2, 10, 13, 15, 16, 17, 18, 21, 23, 26, 28, 29], "result_processor": [2, 9, 10, 15, 16, 17, 18, 29, 31], "util": [2, 10, 13], "sphinx": [2, 13, 21, 23], "autoapi": [2, 23], "cfg": [3, 29], "base": [3, 4, 5, 6, 7, 8, 9, 13, 15, 16, 17, 18, 21, 22, 26, 29, 30, 32], "abc": [3, 4, 6], "helper": [3, 4, 6], "provid": [3, 4, 6, 13, 15, 16, 17, 18, 21, 24, 25, 27, 29, 30, 32], "standard": [3, 4, 6, 15, 17, 18, 27, 28], "wai": [3, 4, 6, 14, 22, 29], "inherit": [3, 4, 6], "classmethod": 3, "extract_config": 3, "kwarg": 3, "abstract": [3, 4], "method": [3, 9, 11, 13, 15, 16, 17, 24, 29], "extract": [3, 16, 31, 32], "configur": [3, 9, 12, 13, 22, 28, 32], "from": [3, 8, 9, 11, 13, 15, 16, 17, 18, 22, 25, 26, 27, 28, 31, 32], "omegaconf": [3, 6, 12, 23], "object": [3, 4, 11, 17], "valid": [3, 13], "bool": [3, 4, 5, 6, 9, 11, 12], "keyfield": [3, 4, 9, 12, 13, 15, 16, 17, 18, 29, 31], "name": [3, 9, 11, 12, 13, 15, 16, 17, 18, 21, 23, 27, 29, 30], "str": [3, 4, 5, 6, 9, 11, 12, 16, 18], "dtype": [3, 16], "valu": [3, 4, 9, 11, 12, 13, 15, 16, 17, 18, 29, 30, 31, 32], "int": [3, 4, 5, 6, 9, 11, 12, 15, 16, 17, 18, 30], "ani": [3, 4, 9, 15, 21, 24, 25, 29, 30, 31, 32], "databasecfg": [3, 4, 11], "database_nam": [3, 9, 29], "table_nam": [3, 4, 6, 9, 29, 30], "result_timestamp": [3, 15, 16, 17, 30], "resultfield": [3, 4, 13, 15, 16, 17, 18], "dict": [3, 4, 5, 6, 9, 11, 12, 15, 16, 17, 18, 29, 31], "logtabl": [3, 11, 13, 15, 16, 18, 19], "logger": [3, 4, 6, 11, 13, 29], "log": [3, 4, 6, 9, 11, 13, 17, 21, 29, 30, 31, 32], "databas": [3, 9, 11, 13, 15, 16, 17, 18, 21, 22, 23, 31, 32], "connect": [3, 4, 5, 6, 9, 13, 15, 16, 17, 18, 25, 27, 29, 30], "In": [3, 9, 13, 16, 18, 21, 22, 24, 27, 28, 30, 32], "addit": [3, 13, 21, 22, 26, 27, 28, 30, 32], "defin": [3, 8, 9, 13, 22, 29, 30, 31, 32], "structur": [3, 11, 21, 30, 32], "tabl": [3, 9, 13, 17, 18, 30, 32], "attribut": 3, "static": [3, 4, 5, 6, 11], "tupl": [3, 4, 5, 6, 9, 11, 16], "_extract_keyfield": 3, "dictconfig": [3, 12], "_extract_value_rang": 3, "keyfield_nam": [3, 12], "keyfield_cont": 3, "_extract_resultfield": 3, "table_config": 3, "_extract_logt": 3, "get_experiment_configur": [3, 4], "customcfg": 3, "custom_valu": [3, 16], "custom": [3, 13, 15, 16, 17, 18], "everi": [3, 12, 13, 17, 29, 30], "experi": [3, 9, 11, 13, 14, 22, 23, 32], "codecarboncfg": 3, "codecarbon": [3, 9, 11, 13, 22, 23, 32], "api": [3, 13, 23], "pyexperimentercfg": 3, "n_job": [3, 9, 13, 15, 16, 17, 18, 30], "database_configur": [3, 4, 6], "custom_configur": [3, 16], "codecarbon_configur": 3, "config_path": 3, "databaseconnector": [4, 5, 6, 11], "use_codecarbon": [4, 6, 9, 29], "_test_connect": [4, 5, 6], "close_connect": [4, 6], "commit": [4, 21, 26], "none": [4, 6, 9, 11, 12, 15, 16, 17, 18], "cursor": [4, 5, 6], "sql_statement": 4, "fetchal": 4, "create_table_if_not_exist": 4, "_table_exist": [4, 5, 6], "_compute_column": 4, "_exclude_fixed_column": 4, "column": [4, 9, 13, 16, 18, 29], "_create_t": 4, "table_typ": 4, "_get_create_table_queri": 4, "get_autoincr": [4, 5, 6], "self": [4, 16], "_table_has_correct_structur": [4, 5, 6], "typed_field": [4, 6], "fill_tabl": [4, 13], "combin": [4, 9, 12, 15], "_check_combination_in_existing_row": 4, "existing_row": 4, "_get_existing_row": [4, 5, 6], "column_nam": [4, 5, 6], "random_ord": [4, 5, 6, 9, 13, 16, 29], "_pull_open_experi": [4, 5, 6], "_select_open_experiments_from_db": 4, "random_order_str": [4, 5, 6], "_get_pull_experiment_queri": [4, 5, 6], "order_bi": [4, 5, 6], "_write_to_databas": 4, "pull_paused_experi": 4, "experiment_id": [4, 9, 11, 16, 17, 18, 29, 30], "prepare_write_queri": 4, "kei": [4, 9, 11, 13, 21, 27], "update_databas": 4, "condit": [4, 13, 19, 25, 29], "_prepare_update_queri": 4, "reset_experi": [4, 9, 13, 16, 29], "state": [4, 9, 13, 21, 29, 30], "_pop_experiments_with_statu": 4, "statu": [4, 9, 11, 13, 15, 16, 17, 18, 23, 29, 32], "_get_experiments_with_condit": 4, "_delete_experiments_with_condit": 4, "get_structure_from_t": [4, 5, 6], "execute_queri": 4, "queri": 4, "delete_t": [4, 9, 13], "get_logt": [4, 9, 17], "logtable_nam": [4, 9, 11, 30, 31], "panda": [4, 9, 13, 15, 16, 23, 29, 32], "datafram": [4, 9, 13, 15, 16, 29, 32], "get_codecarbon_t": [4, 9, 16, 18, 29], "get_tabl": [4, 9, 15, 16, 17, 18, 29], "databaseconnectorlit": 5, "_write_to_database_separ": 5, "_prepared_statement_placehold": [5, 6], "config_column": 5, "databaseconnectormysql": 6, "credential_path": 6, "use_ssh_tunnel": [6, 9, 29], "": [6, 15, 16, 17, 18], "get_ssh_tunnel": 6, "start_ssh_tunnel": 6, "close_ssh_tunnel": [6, 29], "_create_database_if_not_exist": 6, "_get_database_credenti": 6, "_start_transact": 6, "readonli": 6, "fals": [6, 9, 15, 16, 17, 18, 29, 30], "pyexperimentererror": 7, "common": [7, 30], "class": [7, 13], "all": [7, 8, 9, 13, 15, 16, 17, 18, 21, 24, 25, 26, 28, 29, 30, 31, 32], "non": [7, 22], "exit": 7, "parametercombinationerror": [7, 9], "databaseerror": 7, "databasecreationerror": 7, "databaseconnectionerror": [7, 9], "sshtunnelerror": 7, "databasequeryerror": 7, "emptyfilldatabasecallerror": 7, "creatingtableerror": 7, "invalidresultfielderror": 7, "invalidlogfielderror": [7, 11], "tablehaswrongstructureerror": 7, "noexperimentsleftexcept": 7, "nopausedexperimentsexcept": [7, 9], "configerror": 7, "noconfigfileerror": 7, "filenotfounderror": 7, "invalidconfigerror": 7, "invalidvaluesinconfigur": [7, 9], "missinglogtableerror": 7, "invalidcolumnerror": 7, "invalidlogtableerror": 7, "experimentstatu": [8, 9, 13, 18, 29], "enum": [8, 13], "enumer": 8, "deriv": 8, "run": [8, 9, 13, 15, 18, 29, 32], "done": [8, 9, 15, 16, 17, 18, 24, 27, 29], "error": [8, 9, 13, 15, 16, 17, 18, 29, 30, 32], "paus": [8, 9, 13, 19], "experiment_configuration_file_path": [9, 15, 16, 17, 18, 28, 29], "o": [9, 13, 15, 16, 17, 18, 31], "join": [9, 15, 16, 17, 18, 31], "experiment_configur": [9, 29], "yml": [9, 15, 16, 17, 18, 27], "database_credential_file_path": [9, 28, 29], "database_credenti": [9, 27, 29], "true": [9, 15, 16, 17, 18, 29, 30, 31], "logger_nam": [9, 29], "py": [9, 13, 15, 16, 17, 18, 21, 23, 26, 29], "log_level": [9, 16, 18, 29, 30], "info": [9, 15, 16, 17, 18, 29], "log_fil": [9, 29], "handl": [9, 13], "initi": [9, 13, 17, 18], "collect": [9, 15, 17, 22], "respect": [9, 26], "result": [9, 11, 13, 14, 15, 18, 22, 23, 30, 31, 32], "close_ssh": 9, "close": 9, "ssh": [9, 13, 27], "tunnel": 9, "fill_table_from_combin": [9, 15], "fixed_parameter_combin": [9, 12, 15], "paramet": [9, 11, 12, 13, 16, 17, 18, 19, 22, 27, 29, 30, 31, 32], "row": [9, 13, 15, 16, 17, 18], "inform": [9, 13, 15, 16, 17, 21, 24, 26, 29, 31, 32], "exist": [9, 15, 16, 17, 18, 21, 29], "doe": [9, 15, 16, 17, 18, 26], "ha": [9, 13, 15, 16, 17, 18, 20, 21, 27, 29, 30, 31, 32], "been": [9, 13, 18, 20, 21, 30, 32], "afterward": [9, 15, 21, 29], "fill": [9, 13, 17, 18, 30, 31], "cartesian": [9, 12, 15, 16, 29], "product": [9, 12, 15, 16, 23, 29], "where": [9, 13, 21, 24, 28, 29, 30], "each": [9, 11, 12, 13, 15, 16, 17, 18, 28, 29, 30, 32], "up": [9, 16, 22], "note": [9, 15, 16, 17, 18, 27, 29, 31], "onli": [9, 13, 15, 18, 27, 29, 30, 31], "ar": [9, 11, 12, 13, 15, 16, 17, 21, 22, 23, 24, 29, 30, 31, 32], "whose": [9, 30], "alreadi": [9, 17, 26, 29], "set": [9, 13, 15, 16, 17, 18, 22, 27, 29, 32], "match": 9, "rais": [9, 11, 15, 16, 18], "exampl": [9, 20, 22, 24, 26, 27, 29, 30, 31], "call": [9, 11, 13, 15, 16, 29, 30, 31], "a2": 9, "2": [9, 15, 16, 17, 18, 23, 30], "4": [9, 15, 16, 17, 18, 23, 29, 30], "b": [9, 21], "c": [9, 13, 25], "cat": 9, "dog": 9, "accord": [9, 13, 15, 17, 21, 26, 29], "four": 9, "option": [9, 13, 30], "predefin": [9, 30], "type": [9, 12, 13, 15, 16, 17, 18, 28, 30], "default": [9, 15, 16, 17, 26, 27, 29, 30], "dictionari": [9, 11], "possibl": [9, 28, 30], "fill_table_from_config": [9, 16, 17, 18, 28, 29], "fill_table_with_row": [9, 16, 29], "entri": [9, 13, 15, 16, 30, 31], "made": [9, 21], "pair": [9, 11], "valueerror": [9, 15, 16, 18, 21], "experiment_funct": [9, 16, 28, 29], "callabl": 9, "resultprocessor": [9, 11, 13, 15, 16, 17, 18, 29, 31], "max_experi": [9, 13, 15, 16, 17, 18, 28, 29], "pull": [9, 13, 26, 32], "open": [9, 13, 14, 15, 16, 17, 18, 29, 32], "mani": [9, 13, 29], "process": [9, 11, 13, 15, 16, 18, 28, 30, 31, 32], "start": [9, 13, 16, 18, 21, 22, 28, 29, 30], "specifi": [9, 17, 22, 29, 30], "singl": [9, 13, 15, 16, 17, 22, 28, 29, 31], "sequenti": [9, 17, 29], "until": [9, 29], "By": [9, 27, 29], "order": [9, 13, 29], "determin": [9, 16, 29], "id": [9, 13, 15, 16, 17, 18, 29], "randomli": 9, "after": [9, 15, 16, 18, 21, 22, 29, 32], "continu": [9, 13, 19, 20, 29], "written": [9, 15, 16, 29, 30, 31], "wa": [9, 13, 22, 29], "success": 9, "return": [9, 12, 18, 29], "correspond": [9, 17, 23, 27, 29, 32], "otherwis": [9, 21, 25, 32], "occur": [9, 13, 24, 29], "chang": [9, 21], "case": [9, 16, 18, 21, 24, 27, 29, 30, 32], "altern": [9, 29], "unpaus": [9, 18], "again": [9, 16, 21], "unpause_experi": [9, 18, 29], "within": [9, 13, 22, 30, 31], "befor": [9, 13, 16, 21, 26], "local": [9, 21, 27], "appear": 9, "function": [9, 13, 21, 22, 29, 30, 32], "should": [9, 15, 16, 17, 21, 24, 29], "differ": [9, 12, 13, 17, 18, 22, 28, 29, 31, 32], "parametr": [9, 29], "number": [9, 14, 15, 17, 26, 30], "parallel": [9, 13, 15, 16, 22, 28, 29, 30], "taken": 9, "wrong": [9, 13], "data": [9, 15, 16, 17, 18, 30], "context": [9, 28], "mean": [9, 15, 16, 17, 18, 22, 27, 29, 31], "its": [9, 13, 29, 30], "param": [9, 11, 12], "_description_": 9, "_worker": 9, "worker": [9, 13], "repeatedli": 9, "_execution_wrapp": [9, 13], "one": [9, 13, 14, 15, 16, 17, 18, 21, 22, 27, 29, 30], "Then": [9, 21], "therebi": [9, 22, 23, 30], "have": [9, 13, 15, 16, 17, 18, 20, 21, 24, 27, 28, 29, 30, 31], "directli": [9, 21], "finish": [9, 15, 16, 17, 18, 32], "successfulli": [9, 15, 16, 17, 18], "addition": [9, 13, 15, 16, 17, 21, 24, 29, 30, 32], "due": [9, 13, 15, 16, 17, 21], "noexperimentslefterror": 9, "left": 9, "_execute_experi": [9, 16], "keyfield_valu": [9, 16], "_write_codecarbon_config": 9, "write": [9, 11, 13, 15, 16, 17, 18, 30, 31, 32], "_delete_codecarbon_config": 9, "delet": [9, 29], "reset": [9, 13, 16, 28, 32], "either": [9, 21, 27, 28], "variabl": [9, 17], "length": 9, "argument": 9, "multipl": [9, 13, 15, 16, 28, 29, 31], "drop": 9, "associ": [9, 25], "pd": [9, 16, 18], "database_config": 11, "db_connector": 11, "whenev": [11, 13], "process_result": [11, 15, 16, 17, 18, 31], "field": [11, 13, 15, 17, 22], "_write_emiss": 11, "emission_data": 11, "output": [11, 16, 18, 21, 26, 30], "emissionsdata": 11, "offline_mod": [11, 16, 18, 30], "_add_timestamps_to_result": 11, "process_log": [11, 17, 31], "append": 11, "invalid": 11, "without": [11, 21, 25, 29], "prefix": [11, 30], "table_name__": 11, "inner": 11, "columnsnam": 11, "_valid_logtable_log": 11, "_change_statu": 11, "_write_error": 11, "error_msg": 11, "_set_machin": 11, "machine_id": 11, "_set_nam": 11, "_valid_result_field": 11, "result_field": 11, "load_credential_config": 12, "load": [12, 16, 18], "write_codecarbon_config": 12, "codecarbon_config": 12, "extract_codecarbon_column": 12, "combine_fill_table_paramet": 12, "float": 12, "combien": 12, "These": [12, 22], "combiend": 12, "other": [12, 15, 21, 25, 30], "fix": [12, 15, 26, 30], "similar": [12, 20, 21], "union": 12, "like": [12, 21, 31], "howev": [12, 17, 22, 27, 29], "insid": 12, "two": [12, 16, 18, 29, 30], "item": 12, "get_timestamp_represent": 12, "about": [13, 15, 16, 17, 24, 29, 30], "distribut": [13, 14, 22, 25, 32], "machin": [13, 15, 16, 17, 18, 21, 23, 28, 30, 32], "sql": 13, "statement": 13, "ci": 13, "9": [13, 15, 16, 17, 18, 21, 23, 26], "remov": 13, "paper": 13, "draft": 13, "action": [13, 22, 25], "logfield": 13, "boolean": [13, 30], "string": 13, "sqlite": [13, 15, 16, 17, 18, 28, 30], "convert": 13, "accordingli": 13, "bugfix": 13, "same": [13, 15, 17, 21, 28, 29], "time": [13, 15, 16, 18, 21, 22, 28, 29, 31], "passphras": [13, 27], "correctli": [13, 21], "address": [13, 22, 27], "code": [13, 15, 16, 21, 24, 28, 29, 31, 32], "were": [13, 15, 16, 17, 18], "indent": 13, "incorrectli": 13, "later": [13, 18, 29], "support": [13, 15, 22, 27, 28, 29, 30], "yaml": 13, "credenti": [13, 21, 28, 29, 30, 32], "jump": 13, "host": 13, "problem": [13, 20, 24], "caus": 13, "some": [13, 16, 17, 21, 24, 30, 31], "twice": 13, "temporari": 13, "termin": [13, 29], "random": [13, 15, 16, 17, 18, 29, 32], "hotfix": 13, "cluster": 13, "runner": 13, "could": [13, 20, 21], "reflect": 13, "improv": [13, 21, 24], "thei": [13, 16, 30], "now": [13, 16, 17, 18], "might": [13, 27], "help": [13, 24, 30], "interest": [13, 30], "messag": 13, "better": 13, "feedback": [13, 21], "why": [13, 28], "did": [13, 21], "work": [13, 21, 22, 24, 26, 27, 30], "implement": 13, "level": [13, 29], "furthermor": [13, 16, 30, 31], "formatt": 13, "well": [13, 15, 17, 22, 30], "handler": [13, 28], "ensur": [13, 21], "both": [13, 28], "consol": 13, "notebook": [13, 15, 16, 17, 18, 26], "longer": [13, 16], "overwrit": [13, 29], "basicconfig": 13, "framework": 13, "measur": [13, 22, 30], "carbon": [13, 15, 16, 17, 22, 29, 30, 32], "emiss": [13, 15, 16, 17, 22, 29, 30, 32], "issu": [13, 20, 21], "templat": 13, "request": [13, 26], "extend": [13, 30], "contribut": 13, "replac": [13, 15, 16, 17, 21], "mysql": [13, 21, 27, 28, 30, 32], "connector": 13, "depend": [13, 15, 21, 23, 24, 29, 30], "pymysql": [13, 23], "instead": [13, 15, 17, 28, 29], "escap": 13, "perform": [13, 17, 22, 30, 31], "includ": [13, 21, 23, 25, 30, 32], "joss": [13, 14], "public": [13, 14, 26], "increment": 13, "detail": [13, 24, 29, 30], "usag": [13, 15, 19, 30, 31], "rework": 13, "larg": 13, "fail": [13, 32], "miss": 13, "directori": [13, 15, 16, 17, 18, 30], "cover": [13, 30], "date": 13, "identif": 13, "stack": 13, "trace": 13, "multiprocess": 13, "joblib": [13, 23], "anymor": 13, "workflow": 13, "push": [13, 21], "websit": [13, 21], "separ": [13, 21, 29, 30, 32], "branch": [13, 21], "gh": 13, "access": [13, 26, 27, 28, 29, 30], "readm": [13, 23], "poetri": [13, 21, 23, 26], "cpu": [13, 15, 17, 18], "max": 13, "renam": 13, "spawn": 13, "onc": [13, 28, 31, 32], "advanc": [13, 28], "complet": [13, 29, 30], "select": [13, 21], "limit": [13, 15, 16, 22, 25, 30], "transact": 13, "reach": 13, "hold": 13, "modifi": [13, 17, 25, 30], "abl": 13, "get": [13, 17, 18, 26], "referenc": 13, "db": 13, "unfavor": 13, "see": [13, 21, 29], "abov": [13, 16, 17, 25, 26, 29, 30, 31], "simpl": [13, 26], "github": [13, 20, 21, 23, 24], "cach": 13, "virtual": 13, "environ": [13, 21, 26], "prevent": [13, 28], "cut": 13, "down": 13, "roundtrip": 13, "matrix": 13, "variou": 13, "7": [13, 15, 16, 17, 18, 23], "8": [13, 14, 15, 16, 17, 18, 23], "ubuntu": 13, "maco": 13, "window": 13, "exclud": [13, 16, 30], "sinc": [13, 15, 17, 18, 22], "take": [13, 30], "veri": [13, 21], "long": 13, "restructur": 13, "shortcut": 13, "integ": 13, "timestep": 13, "give": [13, 21, 24], "instanc": [13, 29, 32], "hpc": [13, 15, 16, 22, 28, 29], "obtain": [13, 15, 16, 17, 25, 30], "export": [13, 29, 32], "e": [13, 15, 16, 17, 21, 23, 28, 29, 30, 31, 32], "g": [13, 16, 21, 23, 29, 31], "latex": [13, 29, 32], "robust": 13, "creation": [13, 29], "jupyt": 13, "explain": 13, "grid": [13, 17, 19, 29, 32], "duplic": 13, "quotat": 13, "mark": 13, "compon": [13, 29], "No": [13, 15, 16, 17, 18], "summari": 13, "avail": [13, 15, 17, 18, 21, 29], "releas": 13, "scientif": [14, 23], "we": [14, 15, 17, 18, 21, 22, 27, 28, 29], "would": [14, 21], "appreci": [14, 21], "et": 14, "al": 14, "2023": 14, "track": [14, 15, 17, 18, 22, 29, 30, 32], "journal": 14, "sourc": [14, 21], "softwar": [14, 25], "84": 14, "5149": 14, "http": [14, 21, 23, 26], "doi": 14, "org": [14, 26], "10": [14, 15, 16, 17, 18], "21105": 14, "05149": 14, "articl": [14, 21], "tornede2023": 14, "titl": [14, 24, 26], "author": [14, 23, 25], "publish": [14, 25, 26], "year": 14, "volum": 14, "url": [14, 26], "show": [15, 16, 17, 18, 27], "programmat": 15, "vector": 15, "entir": 15, "scikit": [15, 16, 17, 18], "learn": [15, 16, 17, 18, 23], "found": [15, 16, 17, 18, 21, 29, 30, 31, 32], "here": [15, 16, 31], "import": [15, 16, 17, 18, 21, 28, 29, 31], "content": [15, 16, 17, 18, 26, 29], "example_conditional_grid": 15, "dataset": [15, 16, 17, 18, 29, 30, 31], "varchar": [15, 16, 17, 18, 30], "50": [15, 16, 17, 18, 30], "cross_validation_split": [15, 16, 17, 18, 29, 30], "seed": [15, 16, 17, 18, 29, 30, 31, 32], "kernel": [15, 16, 17, 18, 29, 30], "gamma": [15, 16, 17, 18], "degre": 15, "coef0": 15, "train_f1": [15, 16, 18, 30, 31], "decim": [15, 16, 18], "train_accuraci": [15, 16, 17, 18, 30, 31], "test_f1": [15, 16, 17, 18, 30, 31], "test_accuraci": [15, 16, 17, 18, 30, 31], "sample_data": [15, 16, 17, 18], "mkdir": [15, 16, 17, 18], "w": [15, 16, 17, 18], "f": [15, 16, 17, 18], "next": [15, 16, 17, 18], "dummi": [15, 16, 17], "reason": [15, 16, 17, 27], "numpi": [15, 16, 17, 18, 21, 23], "np": [15, 16, 17, 18, 31], "sklearn": [15, 16, 17, 18], "load_iri": [15, 16, 17, 18], "model_select": [15, 16, 17, 18], "cross_valid": [15, 16, 17, 18], "pipelin": [15, 16, 17, 18, 30, 31], "make_pipelin": [15, 16, 17, 18], "preprocess": [15, 16, 17, 18], "standardscal": [15, 16, 17, 18], "svm": [15, 16, 17, 18], "svc": [15, 16, 17, 18], "sleep": [15, 18], "randint": 15, "def": [15, 16, 17, 18, 29, 31], "run_svm": 15, "custom_config": [15, 16, 17, 18], "0": [15, 16, 17, 18, 23, 27, 30], "5": [15, 16, 17, 18, 23, 30], "x": [15, 16, 17, 18], "y": [15, 16, 17, 18], "target": [15, 16, 17, 18], "linear": [15, 16, 17, 18, 30], "elif": 15, "poli": [15, 16, 17, 18, 29, 30], "rbf": [15, 16, 17, 18, 30], "model": [15, 16, 17, 18], "iri": [15, 16, 17, 18], "score": [15, 16, 17, 18, 31], "cv": [15, 16, 17, 18], "accuraci": [15, 16, 17, 18, 30], "f1_micro": [15, 16, 17, 18], "return_train_scor": [15, 16, 17, 18], "train_f1_micro": [15, 16, 17, 18, 31], "test_f1_micro": [15, 16, 17, 18, 31], "actual": [15, 16, 17, 21, 28, 29, 30], "previous": [15, 16, 29], "job": [15, 16, 17, 28, 29], "especi": [15, 16], "3": [15, 16, 17, 18, 21, 22, 23, 26, 30], "svm_experimenter_01": 15, "2024": [15, 16, 17, 18], "03": [15, 16, 17, 18], "11": [15, 16, 17, 18, 23], "08": [15, 16, 17, 18], "04": 15, "22": [15, 17, 27], "464": 15, "warn": [15, 16, 17, 18], "465": 15, "466": 15, "467": 15, "468": 15, "469": 15, "470": 15, "471": 15, "section": [15, 17, 18, 27, 29, 30, 31], "473": 15, "three": 15, "line": [15, 16, 29], "present": 15, "nan": [15, 16, 18], "thu": [15, 28], "uncondition": 15, "555": 15, "55": 15, "skip": [15, 16, 17, 18], "creation_d": [15, 16, 17, 18], "start_dat": [15, 16, 17, 18], "end_dat": [15, 16, 17, 18], "6": [15, 16, 17, 18], "12": [15, 16, 17, 18], "13": [15, 16, 17], "14": [15, 16, 17], "15": [15, 16, 17, 18, 23, 30], "16": [15, 17, 18], "17": [15, 17], "18": [15, 17, 18], "19": [15, 16, 17], "20": [15, 17], "21": 15, "23": [15, 16, 17], "24": [15, 16, 29], "25": [15, 16, 18, 30], "26": [15, 17], "27": [15, 17], "28": [15, 16, 17], "29": 15, "30": 15, "31": [15, 16, 17], "32": [15, 16, 17], "33": 15, "34": [15, 16, 18], "35": [15, 17, 18], "36": [15, 17], "37": [15, 16], "38": 15, "39": [15, 17, 18], "40": 15, "41": [15, 16], "42": [15, 16, 17, 18, 29], "43": [15, 18], "44": [15, 18], "45": [15, 16], "46": 15, "47": 15, "48": 15, "49": 15, "51": 15, "52": [15, 16, 18], "53": [15, 16], "54": [15, 16, 18], "just": [15, 17], "predifin": [15, 17], "amount": [15, 17], "relat": [15, 16, 17, 20], "setup": [15, 17, 18, 22, 32], "ram": [15, 17, 18], "gpu": [15, 17, 18], "mode": [15, 17, 18], "fall": [15, 17, 18], "back": [15, 17, 18, 32], "constant": [15, 17, 18], "saw": [15, 17, 18], "12th": [15, 16, 17, 18], "gen": [15, 16, 17, 18], "intel": [15, 16, 17, 18], "r": [15, 16, 17, 18, 26], "tm": [15, 16, 17, 18], "i7": [15, 16, 17, 18], "1260p": [15, 16, 17, 18], "don": [15, 17, 18, 20], "t": [15, 17, 18, 20, 23], "know": [15, 17, 18, 20], "contact": [15, 17, 18], "u": [15, 17, 18], "consumpt": [15, 17, 18, 30], "gt": [15, 17, 18], "tracker": [15, 17, 18], "metadata": [15, 17, 18], "platform": [15, 17, 18], "system": [15, 17, 18, 22, 23, 29, 32], "linux": [15, 17, 18], "146": [15, 17, 18], "microsoft": [15, 17, 18], "wsl2": [15, 17, 18], "x86_64": [15, 17, 18], "glibc2": [15, 17, 18], "475": [15, 17, 18], "gb": [15, 17, 18], "count": [15, 17, 18], "energi": [15, 17, 18], "consum": [15, 17, 18, 22], "000000": [15, 17, 18], "kwh": [15, 17, 18], "power": [15, 17, 18, 30], "803128719329834": [15, 17, 18], "000001": [15, 18], "total": [15, 17, 18], "electr": [15, 17, 18], "begin": [15, 16, 17, 18, 21], "000002": [15, 17], "000013": [15, 16], "000014": 15, "000012": [15, 16], "000015": 15, "59": 15, "05": [15, 18], "00": 15, "06": [15, 16], "57": [15, 16, 18], "58": [15, 16], "01": 15, "07": [15, 16, 18], "02": [15, 16], "09": [15, 16, 18], "000007": 15, "000048": 15, "000055": 15, "56": 15, "575": 15, "worklaptop": [15, 16, 17, 18], "975": 15, "966667": [15, 16, 17, 18], "look": [15, 17], "our": [15, 17, 22], "more": [15, 17, 29, 30, 31], "over": [16, 17, 31, 32], "example_general_usag": [16, 18, 30], "255": [16, 30], "stop": [16, 18, 30], "sigmoid": [16, 17, 18, 30], "longtext": [16, 18, 30], "datapath": [16, 30], "measure_power_sec": [16, 18, 30], "tracking_mod": [16, 18, 30], "save_to_fil": [16, 18, 30], "output_dir": [16, 18, 30], "run_ml": [16, 17, 31], "read_csv": [16, 18], "example_notebook": [16, 17, 18], "452": 16, "454": 16, "455": 16, "456": 16, "458": 16, "459": 16, "error_dataset": 16, "533": 16, "559": 16, "randmli": 16, "chosen": 16, "exeecut": 16, "home": 16, "anaconda3": 16, "env": [16, 21], "lib": 16, "python3": 16, "site": 16, "168": 16, "futurewarn": 16, "behavior": 16, "concaten": 16, "empti": 16, "na": 16, "deprec": 16, "futur": 16, "retain": 16, "old": [16, 31], "relev": 16, "concat": 16, "oper": [16, 29], "df": 16, "from_record": 16, "090": 16, "traceback": 16, "recent": 16, "last": 16, "372": 16, "final_statu": 16, "tmp": 16, "ipykernel_19831": 16, "1244630566": 16, "137": 16, "standardsca": [16, 18], "971667": [16, 17, 18], "936667": [16, 17], "933333": [16, 17], "975000": [16, 17], "896667": [16, 17], "893333": [16, 17], "n": [16, 18, 21, 26], "h": [16, 23], "As": 16, "those": [16, 22, 32], "anoth": [16, 21, 29], "try": [16, 21], "simpli": 16, "pass": [16, 29, 30], "remain": 16, "orer": 16, "increas": 16, "191": 16, "192": 16, "491": 16, "result_table_agg": 16, "groupbi": [16, 29], "numeric_onli": 16, "945": 16, "94": 16, "style": 16, "to_latex": [16, 29], "tabular": 16, "lr": 16, "amp": 16, "940000": 16, "integr": 16, "suffix": 16, "_codecarbon": [16, 29, 30], "codecarbon_timestamp": [16, 18], "project_nam": [16, 18], "run_id": [16, 18], "duration_second": [16, 18], "emissions_kg": [16, 18], "emissions_rate_kg_sec": [16, 18], "cpu_power_watt": [16, 18], "gpu_power_watt": [16, 18], "cpu_model": [16, 18], "gpu_count": [16, 18], "gpu_model": [16, 18], "longitud": [16, 18], "latitud": [16, 18], "ram_total_s": [16, 18], "on_cloud": [16, 18], "power_usage_effici": [16, 18], "11t08": [16, 18], "1620091b": 16, "8b86": 16, "4b23": 16, "b54e": 16, "c4cf3020c04d": 16, "088837": 16, "598312e": 16, "000004": 16, "5312": [16, 18], "4771": [16, 18], "47501": [16, 18], "c60a2cf3": 16, "7e01": 16, "49b2": 16, "b40e": 16, "5fb2d6023f23": 16, "086848": 16, "585882e": 16, "65607dcf": 16, "143f": 16, "4721": 16, "9003": 16, "321205ce15eb": 16, "090465": 16, "729579e": 16, "c3c63ce1": 16, "6a16": 16, "4060": 16, "a9e9": 16, "acb5fb73e3d6": 16, "080714": 16, "314905e": 16, "4c166d72": 16, "1a0d": 16, "477b": 16, "b70b": 16, "620914c09edb": 16, "089772": 16, "712606e": 16, "2d2efdca": 16, "c9ae": 16, "4eab": 16, "955a": 16, "2ec5f047bb5d": 16, "070777": 16, "878039e": 16, "42fc7f5d": 16, "2157": 16, "42dd": 16, "9c4d": 16, "ff47c9d60d71": 16, "076391": 16, "133284e": 16, "4158e707": 16, "e153": 16, "4faf": 16, "b171": 16, "7713067c018e": 16, "101170": 16, "188866e": 16, "ec656b86": 16, "801c": 16, "4c3a": 16, "ae96": 16, "190249454c59": 16, "088437": 16, "639145e": 16, "4efdd1ef": 16, "946e": 16, "49f5": 16, "9d3b": 16, "8ddf46839d76": 16, "090036": 16, "723546e": 16, "97294712": 16, "72a2": 16, "49dd": 16, "8173": 16, "6ecf9c580b37": 16, "083235": 16, "419110e": 16, "7bbe7b09": 16, "301f": 16, "4064": 16, "8dc0": 16, "fd578221b525": 16, "079192": 16, "260114e": 16, "e986f632": 16, "5ee3": 16, "437a": 16, "ac43": 16, "52c31578600a": 16, "048913": 16, "921918e": 16, "65d3eead": 16, "d8f5": 16, "4cd7": 16, "9ebd": 16, "2bda51acab85": 16, "040884": 16, "582226e": 16, "carbon_emiss": 16, "sum": 16, "ram_power_watt": 16, "cpu_energy_kw": 16, "gpu_energy_kw": 16, "ram_energy_kw": 16, "energy_consumed_kw": 16, "cpu_count": 16, "105": [16, 18], "11567": 16, "000005": [16, 18], "000057": 16, "595": [16, 17], "070479": 16, "193276e": 16, "224": 16, "216": 16, "650139": 16, "lrr": 16, "understand": [17, 21, 24], "basic": [17, 18], "pyexeriment": 17, "purpos": [17, 25, 28], "demonstr": [17, 31], "slightli": 17, "adapt": [17, 21, 27], "goal": 17, "small": 17, "find": [17, 20], "best": 17, "search": 17, "example_logt": 17, "best_kernel_accuraci": 17, "best_kernel_f1": 17, "train_scor": 17, "f1": [17, 30], "doubl": [17, 18, 30], "iter": 17, "init": 17, "performance_f1": 17, "performance_accuraci": 17, "reproduc": [17, 24], "492": 17, "493": 17, "494": 17, "495": 17, "example_logtables__train_scor": 17, "496": 17, "example_logtables__test_f1": 17, "example_logtables__test_accuraci": 17, "497": 17, "498": 17, "499": 17, "read": [17, 22], "timestamp": [17, 18, 30], "implicit": 17, "000003": [17, 18], "076": 17, "heavili": 18, "ipynb": 18, "configuraiton": 18, "comparison": 18, "paused_at_second": 18, "resumed_at_second": 18, "example_pause_and_continu": 18, "five": 18, "datetim": [18, 30], "pause_after_5_second": 18, "065": 18, "066": 18, "067": 18, "068": 18, "069": 18, "000008": 18, "000059": 18, "000068": 18, "537": 18, "710142e": 18, "lastli": 18, "shown": [18, 30], "resume_after_5_second": 18, "a87e6dcb": 18, "aac": 18, "44b1": 18, "9d83": 18, "c9744312ce62": 18, "096071": 18, "471057e": 18, "5132d06c": 18, "9a59": 18, "4d0e": 18, "8dc5": 18, "0afa4984a5f8": 18, "133938": 18, "813803e": 18, "question": 20, "mayb": 20, "suitabl": [20, 24], "solut": 20, "someon": [20, 21], "els": [20, 21], "situat": 20, "anyth": [20, 26], "idea": 21, "bug": [21, 24], "had": 21, "plan": 21, "yourself": 21, "great": 21, "comment": 21, "what": [21, 24], "exactli": 21, "At": [21, 29], "mention": 21, "review": 21, "fork": 21, "blog": 21, "post": 21, "go": [21, 24], "click": 21, "button": [21, 26], "top": 21, "right": [21, 25], "corner": 21, "clone": 21, "On": [21, 22], "usernam": 21, "com": [21, 23, 27], "remot": 21, "origin": 21, "upstream": 21, "switch": 21, "feature_branch_nam": 21, "meaning": 21, "fetch": 21, "v": 21, "checkout": 21, "anaconda": 21, "pandoc": 21, "suggest": 21, "pytest": [21, 23], "succeed": 21, "upgrad": 21, "good": [21, 28], "usabl": [21, 24], "mandatori": 21, "locat": [21, 27, 29, 30], "affect": 21, "succe": 21, "But": 21, "test_run_experi": 21, "test_run_mysql_experi": 21, "user": [21, 27, 32], "doc": 21, "html": 21, "correct": 21, "destin": 21, "full": 21, "facilit": 22, "subsequ": 22, "evalu": [22, 31], "empir": 22, "studi": 22, "algorithm": 22, "particular": [22, 25], "design": [22, 32], "reduc": 22, "involv": 22, "effort": 22, "significantli": 22, "intend": [22, 23], "research": [22, 23], "artifici": [22, 23], "intellig": [22, 23], "addtion": 22, "analysi": 22, "often": 22, "accompani": 22, "input": [22, 32], "variant": 22, "properti": 22, "individu": 22, "usual": 22, "independ": 22, "manner": [22, 23], "requir": [22, 23, 30], "extens": 22, "aggreg": 22, "report": [22, 24], "monitor": 22, "restart": [22, 32], "tediou": 22, "challeng": 22, "central": 22, "massiv": 22, "allevi": 22, "aforement": 22, "overhead": 22, "eas": 22, "easiest": 22, "dive": 22, "partial": 22, "german": 22, "feder": 22, "ministri": 22, "econom": 22, "affair": 22, "climat": 22, "fleme": 22, "03e16012f": 22, "foundat": 22, "dfg": 22, "collabor": 22, "center": 22, "fly": 22, "comput": [22, 32], "sfb": 22, "901": 22, "160364472": 22, "pypi": 23, "2a0": 23, "ml": 23, "captur": 23, "unifi": 23, "ai": 23, "uni": 23, "hannov": 23, "de": 23, "stud": 23, "upb": 23, "ifi": 23, "lmu": 23, "unisabana": 23, "edu": 23, "co": 23, "licens": 23, "mit": [23, 25], "md": 23, "io": 23, "keyword": 23, "executor": 23, "classifi": 23, "stabl": 23, "audienc": 23, "scienc": 23, "topic": 23, "engin": 23, "program": 23, "languag": 23, "jupyterlab": 23, "sshtunnel": 23, "mock": 23, "nbsphinx": 23, "galleri": 23, "rtd": 23, "theme": 23, "recommonmark": 23, "freezegun": 23, "backend": [23, 30], "masonri": 23, "third": 24, "person": [24, 25], "vision": 24, "featur": [24, 29, 32], "summar": [24, 29], "necessari": [24, 32], "produc": 24, "assumpt": [24, 32], "think": 24, "And": 24, "label": 24, "enhanc": 24, "face": 24, "copyright": 25, "2021": 25, "2022": 25, "permiss": 25, "herebi": 25, "grant": 25, "free": 25, "charg": 25, "copi": [25, 30], "deal": 25, "restrict": 25, "merg": [25, 26], "sublicens": 25, "sell": 25, "permit": 25, "whom": 25, "furnish": 25, "subject": 25, "notic": 25, "shall": 25, "substanti": 25, "portion": 25, "THE": 25, "AS": 25, "warranti": 25, "OF": 25, "kind": 25, "express": 25, "OR": 25, "impli": 25, "BUT": 25, "TO": 25, "merchant": 25, "fit": 25, "FOR": 25, "AND": 25, "noninfring": 25, "IN": 25, "NO": 25, "event": 25, "holder": 25, "BE": 25, "liabl": 25, "claim": 25, "damag": 25, "liabil": 25, "whether": [25, 26], "contract": 25, "tort": 25, "aris": [25, 32], "WITH": 25, "legaci": 26, "known": 26, "token": 26, "store": [26, 28, 30], "xxxxx": 26, "readi": [26, 29], "extra": 26, "index": 26, "repeat": 26, "changelog": 26, "main": [26, 30], "squash": 26, "tag": 26, "With": 26, "press": 26, "attach": 26, "explicitli": 27, "server": 27, "mysqlserv": 27, "example_us": 27, "password": 27, "example_password": 27, "secur": 27, "ip": 27, "jumphost": 27, "ssh_hostnam": 27, "port": 27, "optional_ssh_port": 27, "sshmysqlserv": 27, "ssh_private_key_password": 27, "remote_address": 27, "optional_mysql_server_address": 27, "127": 27, "remote_port": 27, "optional_mysql_server_port": 27, "3306": 27, "local_address": 27, "optional_local_address": 27, "local_port": 27, "optional_local_port": 27, "privat": 27, "across": 28, "procedur": 28, "consider": 28, "share": 28, "concurr": 28, "choic": 28, "recommend": 28, "while": [28, 31], "theoret": 28, "introduc": 28, "respons": 28, "typic": [28, 30], "node": 28, "few": 29, "beforehand": 29, "run_experi": [29, 31], "someth": 29, "assum": 29, "ignor": [29, 30], "complex": 29, "new_data": 29, "new_data_2": 29, "fashion": 29, "comma": [29, 30], "interrupt": 29, "result_t": 29, "print": 29, "index_nam": 29, "footprint": [29, 30], "enabl": [29, 30], "conveni": 29, "certain": [29, 32], "resum": 29, "run_experiment_until_paus": 29, "custom_field": [29, 31], "some_reason_to_paus": 29, "thing": 29, "point": 29, "togeth": [29, 30], "run_experiment_after_paus": 29, "primarili": 30, "subsect": 30, "dataset1": 30, "dataset2": 30, "dataset3": 30, "pipeline_evalu": 30, "incumb": 30, "identifi": 30, "henc": 30, "thought": 30, "numer": 30, "rang": 30, "size": 30, "depth": [30, 31], "showcas": [30, 31], "string_input_nam": 30, "int_input_nam": 30, "int_shortened_input_nam": 30, "numeric_input_nam": 30, "numeric_shortened_input_nam": 30, "form": 30, "consist": 30, "intermedi": 30, "similarli": 30, "underli": 30, "belong": 30, "__": 30, "commonli": 30, "maximum": 30, "under": 30, "deactiv": 30, "per": 30, "whole": 30, "estim": 30, "region": 30, "devic": 30, "save": 30, "own": 30, "start_tim": 31, "loop": 31, "epoch": 31, "stuff": 31, "new_best_perform": 31, "min": 31, "runtim": 31, "break": 31, "test": 31, "re": 31, "overwritten": 31, "subset": [31, 32], "resultfield_nam": 31, "resultfield_valu": 31, "logtable_field_nam": 31, "logtable_field_valu": 31, "schema": 32, "figur": 32, "uniqu": 32, "through": 32, "domain": 32, "desir": 32, "overal": 32, "jointli": 32, "averag": 32, "view": 32}, "objects": {"": [[10, 0, 0, "-", "py_experimenter"]], "py_experimenter": [[3, 0, 0, "-", "config"], [4, 0, 0, "-", "database_connector"], [5, 0, 0, "-", "database_connector_lite"], [6, 0, 0, "-", "database_connector_mysql"], [7, 0, 0, "-", "exceptions"], [8, 0, 0, "-", "experiment_status"], [9, 0, 0, "-", "experimenter"], [11, 0, 0, "-", "result_processor"], [12, 0, 0, "-", "utils"]], "py_experimenter.config": [[3, 1, 1, "", "Cfg"], [3, 1, 1, "", "CodeCarbonCfg"], [3, 1, 1, "", "CustomCfg"], [3, 1, 1, "", "DatabaseCfg"], [3, 1, 1, "", "Keyfield"], [3, 1, 1, "", "PyExperimenterCfg"]], "py_experimenter.config.Cfg": [[3, 2, 1, "", "extract_config"], [3, 2, 1, "", "valid"]], "py_experimenter.config.CodeCarbonCfg": [[3, 2, 1, "", "extract_config"], [3, 2, 1, "", "valid"]], "py_experimenter.config.CustomCfg": [[3, 2, 1, "", "extract_config"], [3, 2, 1, "", "valid"]], "py_experimenter.config.DatabaseCfg": [[3, 2, 1, "", "_extract_keyfields"], [3, 2, 1, "", "_extract_logtables"], [3, 2, 1, "", "_extract_resultfields"], [3, 2, 1, "", "_extract_value_range"], [3, 2, 1, "", "extract_config"], [3, 2, 1, "", "get_experiment_configuration"], [3, 2, 1, "", "valid"]], "py_experimenter.config.Keyfield": [[3, 3, 1, "", "dtype"], [3, 3, 1, "", "name"], [3, 3, 1, "", "values"]], "py_experimenter.config.PyExperimenterCfg": [[3, 2, 1, "", "extract_config"], [3, 2, 1, "", "valid"]], "py_experimenter.database_connector": [[4, 1, 1, "", "DatabaseConnector"]], "py_experimenter.database_connector.DatabaseConnector": [[4, 2, 1, "", "_check_combination_in_existing_rows"], [4, 2, 1, "", "_compute_columns"], [4, 2, 1, "", "_create_table"], [4, 2, 1, "", "_delete_experiments_with_condition"], [4, 2, 1, "", "_exclude_fixed_columns"], [4, 2, 1, "", "_get_create_table_query"], [4, 2, 1, "", "_get_existing_rows"], [4, 2, 1, "", "_get_experiments_with_condition"], [4, 2, 1, "", "_get_pull_experiment_query"], [4, 2, 1, "", "_pop_experiments_with_status"], [4, 2, 1, "", "_prepare_update_query"], [4, 2, 1, "", "_pull_open_experiment"], [4, 2, 1, "", "_select_open_experiments_from_db"], [4, 2, 1, "", "_table_exists"], [4, 2, 1, "", "_table_has_correct_structure"], [4, 2, 1, "", "_test_connection"], [4, 2, 1, "", "_write_to_database"], [4, 2, 1, "", "close_connection"], [4, 2, 1, "", "commit"], [4, 2, 1, "", "connect"], [4, 2, 1, "", "create_table_if_not_existing"], [4, 2, 1, "", "cursor"], [4, 2, 1, "", "delete_table"], [4, 2, 1, "", "execute"], [4, 2, 1, "", "execute_queries"], [4, 2, 1, "", "fetchall"], [4, 2, 1, "", "fill_table"], [4, 2, 1, "", "get_autoincrement"], [4, 2, 1, "", "get_codecarbon_table"], [4, 2, 1, "", "get_experiment_configuration"], [4, 2, 1, "", "get_logtable"], [4, 2, 1, "", "get_structure_from_table"], [4, 2, 1, "", "get_table"], [4, 2, 1, "", "prepare_write_query"], [4, 2, 1, "", "pull_paused_experiment"], [4, 2, 1, "", "random_order_string"], [4, 2, 1, "", "reset_experiments"], [4, 2, 1, "", "update_database"]], "py_experimenter.database_connector_lite": [[5, 1, 1, "", "DatabaseConnectorLITE"]], "py_experimenter.database_connector_lite.DatabaseConnectorLITE": [[5, 2, 1, "", "_get_existing_rows"], [5, 2, 1, "", "_get_pull_experiment_query"], [5, 3, 1, "", "_prepared_statement_placeholder"], [5, 2, 1, "", "_pull_open_experiment"], [5, 2, 1, "", "_table_exists"], [5, 2, 1, "", "_table_has_correct_structure"], [5, 2, 1, "", "_test_connection"], [5, 3, 1, "", "_write_to_database_separator"], [5, 2, 1, "", "connect"], [5, 2, 1, "", "get_autoincrement"], [5, 2, 1, "", "get_structure_from_table"], [5, 2, 1, "", "random_order_string"]], "py_experimenter.database_connector_mysql": [[6, 1, 1, "", "DatabaseConnectorMYSQL"]], "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL": [[6, 2, 1, "", "_create_database_if_not_existing"], [6, 2, 1, "", "_get_database_credentials"], [6, 2, 1, "", "_get_existing_rows"], [6, 2, 1, "", "_get_pull_experiment_query"], [6, 3, 1, "", "_prepared_statement_placeholder"], [6, 2, 1, "", "_pull_open_experiment"], [6, 2, 1, "", "_start_transaction"], [6, 2, 1, "", "_table_exists"], [6, 2, 1, "", "_table_has_correct_structure"], [6, 2, 1, "", "_test_connection"], [6, 2, 1, "", "close_connection"], [6, 2, 1, "", "close_ssh_tunnel"], [6, 2, 1, "", "connect"], [6, 2, 1, "", "get_autoincrement"], [6, 2, 1, "", "get_ssh_tunnel"], [6, 2, 1, "", "get_structure_from_table"], [6, 2, 1, "", "random_order_string"], [6, 2, 1, "", "start_ssh_tunnel"]], "py_experimenter.exceptions": [[7, 4, 1, "", "ConfigError"], [7, 4, 1, "", "CreatingTableError"], [7, 4, 1, "", "DatabaseConnectionError"], [7, 4, 1, "", "DatabaseCreationError"], [7, 4, 1, "", "DatabaseError"], [7, 4, 1, "", "DatabaseQueryError"], [7, 4, 1, "", "EmptyFillDatabaseCallError"], [7, 4, 1, "", "InvalidColumnError"], [7, 4, 1, "", "InvalidConfigError"], [7, 4, 1, "", "InvalidLogFieldError"], [7, 4, 1, "", "InvalidLogtableError"], [7, 4, 1, "", "InvalidResultFieldError"], [7, 4, 1, "", "InvalidValuesInConfiguration"], [7, 4, 1, "", "MissingLogTableError"], [7, 4, 1, "", "NoConfigFileError"], [7, 4, 1, "", "NoExperimentsLeftException"], [7, 4, 1, "", "NoPausedExperimentsException"], [7, 4, 1, "", "ParameterCombinationError"], [7, 4, 1, "", "PyExperimenterError"], [7, 4, 1, "", "SshTunnelError"], [7, 4, 1, "", "TableHasWrongStructureError"]], "py_experimenter.experiment_status": [[8, 1, 1, "", "ExperimentStatus"]], "py_experimenter.experiment_status.ExperimentStatus": [[8, 3, 1, "", "ALL"], [8, 3, 1, "", "CREATED"], [8, 3, 1, "", "DONE"], [8, 3, 1, "", "ERROR"], [8, 3, 1, "", "PAUSED"], [8, 3, 1, "", "RUNNING"]], "py_experimenter.experimenter": [[9, 1, 1, "", "PyExperimenter"]], "py_experimenter.experimenter.PyExperimenter": [[9, 2, 1, "", "_delete_codecarbon_config"], [9, 2, 1, "", "_execute_experiment"], [9, 2, 1, "", "_execution_wrapper"], [9, 2, 1, "", "_worker"], [9, 2, 1, "", "_write_codecarbon_config"], [9, 2, 1, "", "close_ssh"], [9, 2, 1, "", "delete_table"], [9, 2, 1, "", "execute"], [9, 2, 1, "", "fill_table_from_combination"], [9, 2, 1, "", "fill_table_from_config"], [9, 2, 1, "", "fill_table_with_rows"], [9, 2, 1, "", "get_codecarbon_table"], [9, 2, 1, "", "get_logtable"], [9, 2, 1, "", "get_table"], [9, 2, 1, "", "reset_experiments"], [9, 2, 1, "", "unpause_experiment"]], "py_experimenter.result_processor": [[11, 1, 1, "", "ResultProcessor"]], "py_experimenter.result_processor.ResultProcessor": [[11, 2, 1, "", "_add_timestamps_to_results"], [11, 2, 1, "", "_change_status"], [11, 2, 1, "", "_set_machine"], [11, 2, 1, "", "_set_name"], [11, 2, 1, "", "_valid_logtable_logs"], [11, 2, 1, "", "_valid_result_fields"], [11, 2, 1, "", "_write_emissions"], [11, 2, 1, "", "_write_error"], [11, 2, 1, "", "process_logs"], [11, 2, 1, "", "process_results"]], "py_experimenter.utils": [[12, 5, 1, "", "combine_fill_table_parameters"], [12, 5, 1, "", "extract_codecarbon_columns"], [12, 5, 1, "", "get_timestamp_representation"], [12, 5, 1, "", "load_credential_config"], [12, 5, 1, "", "write_codecarbon_config"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"]}, "titleterms": {"usag": [0, 16, 17, 32], "3rd": 0, "parti": 0, "depend": 0, "poetri": 0, "author": 1, "core": 1, "develop": [1, 21], "team": 1, "contribut": [1, 21], "api": 2, "refer": 2, "py_experiment": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "config": 3, "modul": [3, 4, 5, 6, 7, 8, 9, 11, 12], "content": [3, 4, 5, 6, 7, 8, 9, 11, 12], "class": [3, 4, 5, 6, 8, 9, 11], "database_connector": 4, "database_connector_lit": 5, "database_connector_mysql": 6, "except": 7, "experiment_statu": 8, "experiment": 9, "submodul": 10, "result_processor": 11, "util": 12, "function": [12, 15, 16, 17, 18, 31], "changelog": 13, "v1": 13, "4": 13, "2": 13, "2024": 13, "featur": 13, "1": 13, "11": 13, "03": 13, "fix": 13, "0": 13, "20": 13, "02": 13, "3": 13, "23": 13, "01": 13, "24": 13, "07": 13, "2023": 13, "exampl": [13, 15, 16, 17, 18, 19], "06": 13, "chang": 13, "21": 13, "04": 13, "test": [13, 21, 26], "2022": 13, "09": 13, "v0": 13, "6": 13, "5": 13, "17": 13, "2021": 13, "10": 13, "14": 13, "cite": 14, "pyexperiment": [14, 15, 16, 17, 22, 29], "citat": 14, "string": 14, "bibtex": 14, "condit": 15, "paramet": 15, "grid": 15, "experi": [15, 16, 17, 18, 28, 29, 30, 31], "configur": [15, 16, 17, 18, 29, 30], "file": [15, 16, 17, 18, 27, 29, 30], "defin": [15, 16, 17, 18], "execut": [15, 16, 17, 18, 28, 29, 30], "initi": [15, 16], "fill": [15, 16, 29], "tabl": [15, 16, 29], "codecarbon": [15, 16, 17, 18, 29, 30], "gener": 16, "restart": 16, "fail": 16, "result": [16, 17, 29], "print": 16, "latex": 16, "aggreg": 16, "logtabl": [17, 30, 31], "run": 17, "check": 17, "paus": [18, 29], "continu": 18, "showcas": 18, "resum": 18, "entri": 18, "need": 20, "help": 20, "how": 21, "setup": [21, 28], "workflow": [21, 28], "extend": 21, "unit": 21, "updat": 21, "document": [21, 22], "creat": [21, 24, 29], "pull": 21, "request": 21, "welcom": 22, "": 22, "acknowledg": 22, "instal": 23, "an": 24, "issu": 24, "licens": 25, "releas": 26, "version": 26, "prepar": 26, "pypi": 26, "databas": [27, 28, 29, 30], "credenti": 27, "distribut": 28, "handl": 28, "from": 29, "With": 29, "specif": 29, "row": 29, "reset": 29, "obtain": 29, "unpaus": 29, "close": 29, "ssh": 29, "tunnel": 29, "inform": 30, "keyfield": 30, "resultfield": [30, 31], "custom": 30, "field": 30, "push": 31, "data": 31, "To": 31}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx": 58}, "alltitles": {"Usage of 3rd Party Dependencies": [[0, "usage-of-3rd-party-dependencies"]], "Poetry": [[0, "poetry"]], "Authors": [[1, "authors"]], "Core Development Team": [[1, "core-development-team"]], "Contributions": [[1, "contributions"]], "API Reference": [[2, "api-reference"]], "py_experimenter.config": [[3, "module-py_experimenter.config"]], "Module Contents": [[3, "module-contents"], [4, "module-contents"], [5, "module-contents"], [6, "module-contents"], [7, "module-contents"], [8, "module-contents"], [9, "module-contents"], [11, "module-contents"], [12, "module-contents"]], "Classes": [[3, "classes"], [4, "classes"], [5, "classes"], [6, "classes"], [8, "classes"], [9, "classes"], [11, "classes"]], "py_experimenter.database_connector": [[4, "module-py_experimenter.database_connector"]], "py_experimenter.database_connector_lite": [[5, "module-py_experimenter.database_connector_lite"]], "py_experimenter.database_connector_mysql": [[6, "module-py_experimenter.database_connector_mysql"]], "py_experimenter.exceptions": [[7, "module-py_experimenter.exceptions"]], "py_experimenter.experiment_status": [[8, "module-py_experimenter.experiment_status"]], "py_experimenter.experimenter": [[9, "module-py_experimenter.experimenter"]], "py_experimenter": [[10, "module-py_experimenter"]], "Submodules": [[10, "submodules"]], "py_experimenter.result_processor": [[11, "module-py_experimenter.result_processor"]], "py_experimenter.utils": [[12, "module-py_experimenter.utils"]], "Functions": [[12, "functions"]], "Changelog": [[13, "changelog"]], "v1.4.2 (??.??.2024)": [[13, "v1-4-2-2024"]], "Feature": [[13, "feature"], [13, "id1"], [13, "id2"], [13, "id4"], [13, "id6"], [13, "id8"], [13, "id11"], [13, "id12"], [13, "id15"], [13, "id19"]], "v1.4.1 (11.03.2024)": [[13, "v1-4-1-11-03-2024"]], "Fix": [[13, "fix"], [13, "id3"], [13, "id5"], [13, "id7"], [13, "id10"], [13, "id14"], [13, "id17"], [13, "id21"]], "v1.4.0 (20.02.2024)": [[13, "v1-4-0-20-02-2024"]], "v1.3.2 (23.01.2024)": [[13, "v1-3-2-23-01-2024"]], "v1.3.1 (24.07.2023)": [[13, "v1-3-1-24-07-2023"]], "Examples": [[13, "examples"], [13, "id9"], [13, "id13"], [13, "id16"], [13, "id20"], [19, "examples"]], "v1.3.0 (23.06.2023)": [[13, "v1-3-0-23-06-2023"]], "Changed": [[13, "changed"]], "v1.2.1 (21/04/2023)": [[13, "v1-2-1-21-04-2023"]], "v1.2.0 (04/04/2023)": [[13, "v1-2-0-04-04-2023"]], "Tests": [[13, "tests"], [13, "id18"], [13, "id22"]], "v1.1.0 (21/11/2022)": [[13, "v1-1-0-21-11-2022"]], "v1.0.0 (04/09/2022)": [[13, "v1-0-0-04-09-2022"]], "v0.0.6 (01/03/2022)": [[13, "v0-0-6-01-03-2022"]], "v0.0.5 (17/01/2022)": [[13, "v0-0-5-17-01-2022"]], "v0.0.4 (02/11/2021)": [[13, "v0-0-4-02-11-2021"]], "v0.0.3 (20/10/2021)": [[13, "v0-0-3-20-10-2021"]], "v0.0.2 (20/10/2021)": [[13, "v0-0-2-20-10-2021"]], "v0.0.1 (14/10/2021)": [[13, "v0-0-1-14-10-2021"]], "Cite PyExperimenter": [[14, "cite-pyexperimenter"]], "Citation String": [[14, "citation-string"]], "BibTex": [[14, "bibtex"]], "Example: Conditional Parameter Grids": [[15, "Example:-Conditional-Parameter-Grids"]], "Experiment Configuration File": [[15, "Experiment-Configuration-File"], [16, "Experiment-Configuration-File"], [17, "Experiment-Configuration-File"], [18, "Experiment-Configuration-File"], [30, "experiment-configuration-file"]], "Defining the execution function": [[15, "Defining-the-execution-function"], [16, "Defining-the-execution-function"], [17, "Defining-the-execution-function"]], "Executing PyExperimenter": [[15, "Executing-PyExperimenter"], [16, "Executing-PyExperimenter"], [17, "Executing-PyExperimenter"], [29, "executing-pyexperimenter"]], "Initialize PyExperimenter": [[15, "Initialize-PyExperimenter"], [16, "Initialize-PyExperimenter"]], "Fill Table": [[15, "Fill-Table"], [16, "Fill-Table"]], "Execute PyExperimenter": [[15, "Execute-PyExperimenter"], [16, "Execute-PyExperimenter"]], "CodeCarbon": [[15, "CodeCarbon"], [16, "CodeCarbon"], [17, "CodeCarbon"], [29, "codecarbon"], [30, "codecarbon"]], "Example: General Usage": [[16, "Example:-General-Usage"]], "Restart Failed Experiments": [[16, "Restart-Failed-Experiments"]], "Generating Result Table": [[16, "Generating-Result-Table"]], "Printing LaTex Table": [[16, "Printing-LaTex-Table"]], "Aggregating CodeCarbon Results": [[16, "Aggregating-CodeCarbon-Results"]], "Printing CodeCarbon Results as LaTex Table": [[16, "Printing-CodeCarbon-Results-as-LaTex-Table"]], "Example: Usage of Logtables": [[17, "Example:-Usage-of-Logtables"]], "Run Experiments": [[17, "Run-Experiments"]], "Check Results": [[17, "Check-Results"]], "Example: Pause and Continue": [[18, "Example:-Pause-and-Continue"]], "Defining Pausing Execution Function": [[18, "Defining-Pausing-Execution-Function"]], "Showcase Paused Execution": [[18, "Showcase-Paused-Execution"]], "Define resuming execution function": [[18, "Define-resuming-execution-function"]], "CodeCarbon Entries": [[18, "CodeCarbon-Entries"]], "Need Help?": [[20, "need-help"]], "How to Contribute": [[21, "how-to-contribute"]], "Setup Development Workflow": [[21, "setup-development-workflow"]], "Extend Unit Tests": [[21, "extend-unit-tests"]], "Update Documentation": [[21, "update-documentation"]], "Create Pull Request": [[21, "create-pull-request"]], "Welcome to PyExperimenter\u2019s documentation!": [[22, "welcome-to-pyexperimenter-s-documentation"]], "Acknowledgements": [[22, "acknowledgements"]], "Installation": [[23, "installation"]], "Creating an Issue": [[24, "creating-an-issue"]], "License": [[25, "license"]], "Release Version": [[26, "release-version"]], "Prepare Test PyPi / PyPi": [[26, "prepare-test-pypi-pypi"]], "Release Version to Test PyPi": [[26, "release-version-to-test-pypi"]], "Release Version to PyPi": [[26, "release-version-to-pypi"]], "Database Credential File": [[27, "database-credential-file"]], "Distributed Execution": [[28, "distributed-execution"]], "Database Setup": [[28, "database-setup"]], "Workflow": [[28, "workflow"]], "Database Handling": [[28, "database-handling"]], "Experiment Execution": [[28, "experiment-execution"]], "Creating a PyExperimenter": [[29, "creating-a-pyexperimenter"]], "Fill Database Table": [[29, "fill-database-table"]], "Fill Table From Experiment Configuration File": [[29, "fill-table-from-experiment-configuration-file"]], "Fill Table With Specific Rows": [[29, "fill-table-with-specific-rows"]], "Execute Experiments": [[29, "execute-experiments"]], "Reset Experiments": [[29, "reset-experiments"]], "Obtain Results": [[29, "obtain-results"]], "Pausing and Unpausing Experiments": [[29, "pausing-and-unpausing-experiments"]], "Close SSH Tunnel": [[29, "close-ssh-tunnel"]], "Database Information": [[30, "database-information"]], "Keyfields": [[30, "keyfields"]], "Resultfields": [[30, "resultfields"]], "Logtables": [[30, "logtables"]], "Execution Information": [[30, "execution-information"]], "Custom Fields": [[30, "custom-fields"]], "Experiment Function": [[31, "experiment-function"]], "Push Data To Resultfields": [[31, "push-data-to-resultfields"]], "Push Data To Logtables": [[31, "push-data-to-logtables"]], "Usage": [[32, "usage"]]}, "indexentries": {"cfg (class in py_experimenter.config)": [[3, "py_experimenter.config.Cfg"]], "codecarboncfg (class in py_experimenter.config)": [[3, "py_experimenter.config.CodeCarbonCfg"]], "customcfg (class in py_experimenter.config)": [[3, "py_experimenter.config.CustomCfg"]], "databasecfg (class in py_experimenter.config)": [[3, "py_experimenter.config.DatabaseCfg"]], "keyfield (class in py_experimenter.config)": [[3, "py_experimenter.config.Keyfield"]], "pyexperimentercfg (class in py_experimenter.config)": [[3, "py_experimenter.config.PyExperimenterCfg"]], "_extract_keyfields() (py_experimenter.config.databasecfg static method)": [[3, "py_experimenter.config.DatabaseCfg._extract_keyfields"]], "_extract_logtables() (py_experimenter.config.databasecfg static method)": [[3, "py_experimenter.config.DatabaseCfg._extract_logtables"]], "_extract_resultfields() (py_experimenter.config.databasecfg static method)": [[3, "py_experimenter.config.DatabaseCfg._extract_resultfields"]], "_extract_value_range() (py_experimenter.config.databasecfg static method)": [[3, "py_experimenter.config.DatabaseCfg._extract_value_range"]], "dtype (py_experimenter.config.keyfield attribute)": [[3, "py_experimenter.config.Keyfield.dtype"]], "extract_config() (py_experimenter.config.cfg class method)": [[3, "py_experimenter.config.Cfg.extract_config"]], "extract_config() (py_experimenter.config.codecarboncfg static method)": [[3, "py_experimenter.config.CodeCarbonCfg.extract_config"]], "extract_config() (py_experimenter.config.customcfg static method)": [[3, "py_experimenter.config.CustomCfg.extract_config"]], "extract_config() (py_experimenter.config.databasecfg static method)": [[3, "py_experimenter.config.DatabaseCfg.extract_config"]], "extract_config() (py_experimenter.config.pyexperimentercfg static method)": [[3, "py_experimenter.config.PyExperimenterCfg.extract_config"]], "get_experiment_configuration() (py_experimenter.config.databasecfg method)": [[3, "py_experimenter.config.DatabaseCfg.get_experiment_configuration"]], "module": [[3, "module-py_experimenter.config"], [4, "module-py_experimenter.database_connector"], [5, "module-py_experimenter.database_connector_lite"], [6, "module-py_experimenter.database_connector_mysql"], [7, "module-py_experimenter.exceptions"], [8, "module-py_experimenter.experiment_status"], [9, "module-py_experimenter.experimenter"], [10, "module-py_experimenter"], [11, "module-py_experimenter.result_processor"], [12, "module-py_experimenter.utils"]], "name (py_experimenter.config.keyfield attribute)": [[3, "py_experimenter.config.Keyfield.name"]], "py_experimenter.config": [[3, "module-py_experimenter.config"]], "valid() (py_experimenter.config.cfg method)": [[3, "py_experimenter.config.Cfg.valid"]], "valid() (py_experimenter.config.codecarboncfg method)": [[3, "py_experimenter.config.CodeCarbonCfg.valid"]], "valid() (py_experimenter.config.customcfg method)": [[3, "py_experimenter.config.CustomCfg.valid"]], "valid() (py_experimenter.config.databasecfg method)": [[3, "py_experimenter.config.DatabaseCfg.valid"]], "valid() (py_experimenter.config.pyexperimentercfg method)": [[3, "py_experimenter.config.PyExperimenterCfg.valid"]], "values (py_experimenter.config.keyfield attribute)": [[3, "py_experimenter.config.Keyfield.values"]], "databaseconnector (class in py_experimenter.database_connector)": [[4, "py_experimenter.database_connector.DatabaseConnector"]], "_check_combination_in_existing_rows() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._check_combination_in_existing_rows"]], "_compute_columns() (py_experimenter.database_connector.databaseconnector static method)": [[4, "py_experimenter.database_connector.DatabaseConnector._compute_columns"]], "_create_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._create_table"]], "_delete_experiments_with_condition() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._delete_experiments_with_condition"]], "_exclude_fixed_columns() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._exclude_fixed_columns"]], "_get_create_table_query() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._get_create_table_query"]], "_get_existing_rows() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._get_existing_rows"]], "_get_experiments_with_condition() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._get_experiments_with_condition"]], "_get_pull_experiment_query() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._get_pull_experiment_query"]], "_pop_experiments_with_status() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._pop_experiments_with_status"]], "_prepare_update_query() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._prepare_update_query"]], "_pull_open_experiment() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._pull_open_experiment"]], "_select_open_experiments_from_db() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._select_open_experiments_from_db"]], "_table_exists() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._table_exists"]], "_table_has_correct_structure() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._table_has_correct_structure"]], "_test_connection() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._test_connection"]], "_write_to_database() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._write_to_database"]], "close_connection() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.close_connection"]], "commit() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.commit"]], "connect() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.connect"]], "create_table_if_not_existing() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.create_table_if_not_existing"]], "cursor() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.cursor"]], "delete_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.delete_table"]], "execute() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.execute"]], "execute_queries() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.execute_queries"]], "fetchall() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.fetchall"]], "fill_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.fill_table"]], "get_autoincrement() (py_experimenter.database_connector.databaseconnector static method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_autoincrement"]], "get_codecarbon_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_codecarbon_table"]], "get_experiment_configuration() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_experiment_configuration"]], "get_logtable() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_logtable"]], "get_structure_from_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_structure_from_table"]], "get_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_table"]], "prepare_write_query() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.prepare_write_query"]], "pull_paused_experiment() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.pull_paused_experiment"]], "py_experimenter.database_connector": [[4, "module-py_experimenter.database_connector"]], "random_order_string() (py_experimenter.database_connector.databaseconnector static method)": [[4, "py_experimenter.database_connector.DatabaseConnector.random_order_string"]], "reset_experiments() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.reset_experiments"]], "update_database() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.update_database"]], "databaseconnectorlite (class in py_experimenter.database_connector_lite)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE"]], "_get_existing_rows() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._get_existing_rows"]], "_get_pull_experiment_query() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._get_pull_experiment_query"]], "_prepared_statement_placeholder (py_experimenter.database_connector_lite.databaseconnectorlite attribute)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._prepared_statement_placeholder"]], "_pull_open_experiment() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._pull_open_experiment"]], "_table_exists() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._table_exists"]], "_table_has_correct_structure() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._table_has_correct_structure"]], "_test_connection() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._test_connection"]], "_write_to_database_separator (py_experimenter.database_connector_lite.databaseconnectorlite attribute)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._write_to_database_separator"]], "connect() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE.connect"]], "get_autoincrement() (py_experimenter.database_connector_lite.databaseconnectorlite static method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE.get_autoincrement"]], "get_structure_from_table() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE.get_structure_from_table"]], "py_experimenter.database_connector_lite": [[5, "module-py_experimenter.database_connector_lite"]], "random_order_string() (py_experimenter.database_connector_lite.databaseconnectorlite static method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE.random_order_string"]], "databaseconnectormysql (class in py_experimenter.database_connector_mysql)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL"]], "_create_database_if_not_existing() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._create_database_if_not_existing"]], "_get_database_credentials() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._get_database_credentials"]], "_get_existing_rows() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._get_existing_rows"]], "_get_pull_experiment_query() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._get_pull_experiment_query"]], "_prepared_statement_placeholder (py_experimenter.database_connector_mysql.databaseconnectormysql attribute)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._prepared_statement_placeholder"]], "_pull_open_experiment() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._pull_open_experiment"]], "_start_transaction() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._start_transaction"]], "_table_exists() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._table_exists"]], "_table_has_correct_structure() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._table_has_correct_structure"]], "_test_connection() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._test_connection"]], "close_connection() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.close_connection"]], "close_ssh_tunnel() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.close_ssh_tunnel"]], "connect() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.connect"]], "get_autoincrement() (py_experimenter.database_connector_mysql.databaseconnectormysql static method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.get_autoincrement"]], "get_ssh_tunnel() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.get_ssh_tunnel"]], "get_structure_from_table() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.get_structure_from_table"]], "py_experimenter.database_connector_mysql": [[6, "module-py_experimenter.database_connector_mysql"]], "random_order_string() (py_experimenter.database_connector_mysql.databaseconnectormysql static method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.random_order_string"]], "start_ssh_tunnel() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.start_ssh_tunnel"]], "configerror": [[7, "py_experimenter.exceptions.ConfigError"]], "creatingtableerror": [[7, "py_experimenter.exceptions.CreatingTableError"]], "databaseconnectionerror": [[7, "py_experimenter.exceptions.DatabaseConnectionError"]], "databasecreationerror": [[7, "py_experimenter.exceptions.DatabaseCreationError"]], "databaseerror": [[7, "py_experimenter.exceptions.DatabaseError"]], "databasequeryerror": [[7, "py_experimenter.exceptions.DatabaseQueryError"]], "emptyfilldatabasecallerror": [[7, "py_experimenter.exceptions.EmptyFillDatabaseCallError"]], "invalidcolumnerror": [[7, "py_experimenter.exceptions.InvalidColumnError"]], "invalidconfigerror": [[7, "py_experimenter.exceptions.InvalidConfigError"]], "invalidlogfielderror": [[7, "py_experimenter.exceptions.InvalidLogFieldError"]], "invalidlogtableerror": [[7, "py_experimenter.exceptions.InvalidLogtableError"]], "invalidresultfielderror": [[7, "py_experimenter.exceptions.InvalidResultFieldError"]], "invalidvaluesinconfiguration": [[7, "py_experimenter.exceptions.InvalidValuesInConfiguration"]], "missinglogtableerror": [[7, "py_experimenter.exceptions.MissingLogTableError"]], "noconfigfileerror": [[7, "py_experimenter.exceptions.NoConfigFileError"]], "noexperimentsleftexception": [[7, "py_experimenter.exceptions.NoExperimentsLeftException"]], "nopausedexperimentsexception": [[7, "py_experimenter.exceptions.NoPausedExperimentsException"]], "parametercombinationerror": [[7, "py_experimenter.exceptions.ParameterCombinationError"]], "pyexperimentererror": [[7, "py_experimenter.exceptions.PyExperimenterError"]], "sshtunnelerror": [[7, "py_experimenter.exceptions.SshTunnelError"]], "tablehaswrongstructureerror": [[7, "py_experimenter.exceptions.TableHasWrongStructureError"]], "py_experimenter.exceptions": [[7, "module-py_experimenter.exceptions"]], "all (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.ALL"]], "created (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.CREATED"]], "done (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.DONE"]], "error (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.ERROR"]], "experimentstatus (class in py_experimenter.experiment_status)": [[8, "py_experimenter.experiment_status.ExperimentStatus"]], "paused (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.PAUSED"]], "running (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.RUNNING"]], "py_experimenter.experiment_status": [[8, "module-py_experimenter.experiment_status"]], "pyexperimenter (class in py_experimenter.experimenter)": [[9, "py_experimenter.experimenter.PyExperimenter"]], "_delete_codecarbon_config() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter._delete_codecarbon_config"]], "_execute_experiment() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter._execute_experiment"]], "_execution_wrapper() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter._execution_wrapper"]], "_worker() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter._worker"]], "_write_codecarbon_config() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter._write_codecarbon_config"]], "close_ssh() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.close_ssh"]], "delete_table() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.delete_table"]], "execute() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.execute"]], "fill_table_from_combination() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.fill_table_from_combination"]], "fill_table_from_config() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.fill_table_from_config"]], "fill_table_with_rows() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.fill_table_with_rows"]], "get_codecarbon_table() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.get_codecarbon_table"]], "get_logtable() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.get_logtable"]], "get_table() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.get_table"]], "py_experimenter.experimenter": [[9, "module-py_experimenter.experimenter"]], "reset_experiments() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.reset_experiments"]], "unpause_experiment() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.unpause_experiment"]], "py_experimenter": [[10, "module-py_experimenter"]], "resultprocessor (class in py_experimenter.result_processor)": [[11, "py_experimenter.result_processor.ResultProcessor"]], "_add_timestamps_to_results() (py_experimenter.result_processor.resultprocessor static method)": [[11, "py_experimenter.result_processor.ResultProcessor._add_timestamps_to_results"]], "_change_status() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._change_status"]], "_set_machine() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._set_machine"]], "_set_name() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._set_name"]], "_valid_logtable_logs() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._valid_logtable_logs"]], "_valid_result_fields() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._valid_result_fields"]], "_write_emissions() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._write_emissions"]], "_write_error() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._write_error"]], "process_logs() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor.process_logs"]], "process_results() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor.process_results"]], "py_experimenter.result_processor": [[11, "module-py_experimenter.result_processor"]], "combine_fill_table_parameters() (in module py_experimenter.utils)": [[12, "py_experimenter.utils.combine_fill_table_parameters"]], "extract_codecarbon_columns() (in module py_experimenter.utils)": [[12, "py_experimenter.utils.extract_codecarbon_columns"]], "get_timestamp_representation() (in module py_experimenter.utils)": [[12, "py_experimenter.utils.get_timestamp_representation"]], "load_credential_config() (in module py_experimenter.utils)": [[12, "py_experimenter.utils.load_credential_config"]], "py_experimenter.utils": [[12, "module-py_experimenter.utils"]], "write_codecarbon_config() (in module py_experimenter.utils)": [[12, "py_experimenter.utils.write_codecarbon_config"]]}})
          \ No newline at end of file
          +Search.setIndex({"docnames": ["3rd-party", "authors", "autoapi/index", "autoapi/py_experimenter/config/index", "autoapi/py_experimenter/database_connector/index", "autoapi/py_experimenter/database_connector_lite/index", "autoapi/py_experimenter/database_connector_mysql/index", "autoapi/py_experimenter/exceptions/index", "autoapi/py_experimenter/experiment_status/index", "autoapi/py_experimenter/experimenter/index", "autoapi/py_experimenter/index", "autoapi/py_experimenter/result_processor/index", "autoapi/py_experimenter/utils/index", "changelog", "cite", "examples/example_conditional_grid", "examples/example_general_usage", "examples/example_logtables", "examples/example_pause_and_contiue", "examples/index", "help", "how-to-contribute", "index", "installation", "issues", "license", "release-version", "usage/database_credential_file", "usage/distributed_execution", "usage/execution", "usage/experiment_configuration_file", "usage/experiment_function", "usage/index"], "filenames": ["3rd-party.rst", "authors.rst", "autoapi/index.rst", "autoapi/py_experimenter/config/index.rst", "autoapi/py_experimenter/database_connector/index.rst", "autoapi/py_experimenter/database_connector_lite/index.rst", "autoapi/py_experimenter/database_connector_mysql/index.rst", "autoapi/py_experimenter/exceptions/index.rst", "autoapi/py_experimenter/experiment_status/index.rst", "autoapi/py_experimenter/experimenter/index.rst", "autoapi/py_experimenter/index.rst", "autoapi/py_experimenter/result_processor/index.rst", "autoapi/py_experimenter/utils/index.rst", "changelog.rst", "cite.rst", "examples/example_conditional_grid.ipynb", "examples/example_general_usage.ipynb", "examples/example_logtables.ipynb", "examples/example_pause_and_contiue.ipynb", "examples/index.rst", "help.rst", "how-to-contribute.rst", "index.rst", "installation.rst", "issues.rst", "license.rst", "release-version.rst", "usage/database_credential_file.rst", "usage/distributed_execution.rst", "usage/execution.rst", "usage/experiment_configuration_file.rst", "usage/experiment_function.rst", "usage/index.rst"], "titles": ["Usage of 3rd Party Dependencies", "Authors", "API Reference", "py_experimenter.config", "py_experimenter.database_connector", "py_experimenter.database_connector_lite", "py_experimenter.database_connector_mysql", "py_experimenter.exceptions", "py_experimenter.experiment_status", "py_experimenter.experimenter", "py_experimenter", "py_experimenter.result_processor", "py_experimenter.utils", "Changelog", "Cite PyExperimenter", "Example: Conditional Parameter Grids", "Example: General Usage", "Example: Usage of Logtables", "Example: Pause and Continue", "Examples", "Need Help?", "How to Contribute", "Welcome to PyExperimenter\u2019s documentation!", "Installation", "Creating an Issue", "License", "Release Version", "Database Credential File", "Distributed Execution", "Executing PyExperimenter", "Experiment Configuration File", "Experiment Function", "Usage"], "terms": {"thi": [0, 2, 8, 9, 11, 12, 13, 15, 16, 17, 18, 21, 22, 25, 27, 28, 29, 30, 32], "part": [0, 13, 30, 31], "document": [0, 2, 13, 15, 16, 17, 23, 25, 30], "refer": [0, 11, 13, 21], "need": [0, 13, 15, 16, 17, 18, 21, 24, 27, 28, 29], "us": [0, 3, 4, 9, 11, 13, 14, 15, 16, 17, 18, 21, 22, 24, 25, 26, 27, 28, 29, 30, 32], "activ": [0, 15, 17, 21, 26, 27], "dure": [0, 9, 13, 29, 30, 31, 32], "develop": [0, 13, 23, 26], "It": [0, 13, 15, 16, 21, 22, 30], "contain": [0, 2, 3, 9, 13, 15, 16, 21, 24, 27, 29, 30], "short": 0, "descript": [0, 21, 23, 24, 30], "an": [0, 3, 4, 9, 11, 13, 15, 16, 17, 18, 21, 22, 25, 27, 29, 30, 31, 32], "explan": [0, 15, 16, 17, 30], "how": [0, 13, 17, 18, 20, 24, 27, 29, 30], "i": [0, 9, 12, 13, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "meant": [0, 15, 16, 31], "pyexperiment": [0, 3, 9, 13, 18, 20, 21, 23, 26, 27, 28, 30, 32], "manag": [0, 22, 29], "packag": [0, 13, 16, 23], "tool": [0, 22, 23], "python": [0, 13, 15, 17, 18, 21, 23, 26], "allow": [0, 13, 22], "declar": 0, "your": [0, 21, 24, 26, 27, 31], "project": [0, 13, 21, 22, 26], "instal": [0, 13, 15, 16, 17, 18, 21, 22, 26], "updat": [0, 9, 13, 26], "them": [0, 9, 11, 13, 15, 28], "you": [0, 11, 14, 15, 16, 17, 18, 20, 21, 24, 27, 28, 29, 30, 31], "also": [0, 3, 16, 17, 21, 24, 29, 30, 31], "build": [0, 9, 13, 21, 23, 26], "which": [0, 9, 13, 15, 16, 21, 28, 29, 30, 32], "can": [0, 9, 11, 13, 15, 16, 17, 18, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32], "upload": 0, "repositori": [0, 21, 23, 26], "via": [0, 9, 13, 15, 16, 22, 23, 29, 30], "pip": [0, 15, 16, 17, 18, 21, 23, 26], "For": [0, 9, 15, 17, 29], "instruct": 0, "further": [0, 15, 16, 17, 20, 21, 27, 29, 32], "command": [0, 21], "than": [0, 21], "ones": 0, "list": [0, 3, 4, 5, 6, 9, 11, 12, 13, 16, 29, 30, 32], "below": [0, 18, 27, 30, 32], "pleas": [0, 15, 17, 18, 20, 21, 24, 29, 30], "make": [0, 9, 16, 21, 28, 29], "sure": [0, 21, 28, 29], "follow": [0, 9, 11, 14, 21, 23, 25, 27, 28, 29, 30, 31, 32], "describ": [0, 13, 16, 21, 24, 29, 30], "step": [0, 15, 16, 18, 21, 24, 26, 30, 32], "do": [0, 9, 15, 20, 21, 25, 27, 29, 31], "NOT": [0, 25], "conda": [0, 21, 26], "itself": [0, 13], "add": [0, 9, 13, 21, 24, 26], "path": [0, 9, 12, 15, 16, 17, 18, 27, 28, 29, 30, 31], "If": [0, 9, 14, 15, 17, 20, 21, 26, 27, 29], "check": [0, 3, 9, 13, 20, 21, 26, 29, 30], "out": [0, 25, 29], "To": [0, 9, 15, 16, 17, 18, 21, 24, 27, 28, 29], "end": [0, 9, 16, 21, 30], "navig": [0, 21], "git": [0, 21], "folder": [0, 21, 30], "execut": [0, 4, 9, 13, 21, 22, 23, 26, 27, 31, 32], "instll": 0, "excact": 0, "version": [0, 13, 15, 16, 17, 18, 23], "new": [0, 8, 13, 21, 24, 26, 28, 29], "core": [0, 15, 16, 17, 18, 23], "first": [0, 9, 13, 15, 16, 17, 18, 21, 26, 27, 31], "latest": [0, 13, 26], "pyproject": [0, 13], "toml": [0, 13], "file": [0, 9, 12, 13, 21, 22, 25, 26, 28, 32], "want": [0, 11, 16, 18, 21, 24, 29, 30], "specif": [0, 27], "second": [0, 18, 30], "package_nam": 0, "A": [0, 9, 24, 25, 29, 30, 32], "ad": [0, 9, 13, 15, 16, 17, 18, 27, 29], "given": [0, 3, 9, 11, 13, 15, 16, 17, 18, 27, 29, 30, 31], "dev": [0, 23], "group": [0, 23], "The": [0, 9, 11, 13, 14, 15, 16, 17, 21, 22, 23, 25, 27, 28, 29, 30, 31, 32], "lock": [0, 13], "automat": [0, 13, 23, 26, 30, 32], "when": [0, 9, 13, 16, 27, 30], "so": [0, 9, 15, 24, 25, 29], "therefor": [0, 9, 13, 16, 21, 29], "tri": [0, 9], "resolv": 0, "manual": [0, 21, 22, 29, 32], "most": [0, 16], "current": [0, 13, 29, 30], "libari": 0, "easili": [0, 13, 14, 15, 16, 17, 23, 29, 32], "major": [0, 26], "minor": [0, 26], "patch": [0, 26], "prereleas": [0, 26], "final": [0, 13, 21, 31, 32], "creat": [0, 2, 3, 4, 8, 9, 13, 15, 16, 17, 18, 20, 22, 26, 28, 30, 32], "dist": 0, "built": [0, 9, 21], "tanja": [1, 14, 23, 25], "torned": [1, 14, 21, 23, 25], "alexand": [1, 14, 23, 25], "luka": [1, 14, 16, 23, 25], "fehr": [1, 14, 23, 25], "helena": [1, 14, 23, 25], "graf": [1, 14, 23, 25], "jona": [1, 14, 23, 25], "hansel": [1, 14, 23, 25], "felix": [1, 14, 23, 25], "mohr": [1, 14, 23, 25], "marcel": [1, 14, 23, 25], "wever": [1, 14, 23, 25], "karlson": 1, "pfannschmidt": 1, "gehr": [1, 14, 23, 25], "page": [2, 13, 14], "auto": [2, 16, 17, 18], "gener": [2, 8, 13, 15, 17, 19, 21, 29, 30, 32], "1": [2, 9, 15, 16, 17, 18, 23, 27, 28, 29, 30], "py_experiment": [2, 15, 16, 17, 18, 21, 23, 28, 29, 30, 31], "config": [2, 4, 6, 9, 10, 11, 12, 15, 16, 17, 18, 26, 27, 29, 30], "database_connector": [2, 5, 6, 10, 11], "database_connector_lit": [2, 10], "database_connector_mysql": [2, 10], "except": [2, 9, 10, 13, 21], "experiment_statu": [2, 9, 10], "experiment": [2, 10, 13, 15, 16, 17, 18, 21, 23, 26, 27, 28, 29], "result_processor": [2, 9, 10, 15, 16, 17, 18, 29, 31], "util": [2, 10, 13], "sphinx": [2, 13, 21, 23], "autoapi": [2, 23], "cfg": [3, 29], "base": [3, 4, 5, 6, 7, 8, 9, 13, 15, 16, 17, 18, 21, 22, 26, 29, 30, 32], "abc": [3, 4], "helper": [3, 4], "provid": [3, 4, 13, 15, 16, 17, 18, 21, 24, 25, 27, 29, 30, 32], "standard": [3, 4, 15, 17, 18, 27, 28], "wai": [3, 4, 14, 22, 29], "inherit": [3, 4], "classmethod": 3, "extract_config": 3, "kwarg": 3, "abstract": [3, 4], "method": [3, 9, 11, 13, 15, 16, 17, 24, 29], "extract": [3, 16, 31, 32], "configur": [3, 9, 12, 13, 22, 27, 28, 32], "from": [3, 8, 9, 11, 13, 15, 16, 17, 18, 22, 25, 26, 27, 28, 31, 32], "omegaconf": [3, 12, 23], "object": [3, 4, 11, 17], "valid": [3, 13], "bool": [3, 4, 5, 6, 9, 11, 12], "keyfield": [3, 4, 9, 12, 13, 15, 16, 17, 18, 29, 31], "name": [3, 9, 11, 12, 13, 15, 16, 17, 18, 21, 23, 27, 29, 30], "str": [3, 4, 5, 6, 9, 11, 12, 16, 18], "dtype": [3, 16], "valu": [3, 4, 9, 11, 12, 13, 15, 16, 17, 18, 29, 30, 31, 32], "int": [3, 4, 5, 6, 9, 11, 12, 15, 16, 17, 18, 30], "ani": [3, 4, 9, 15, 21, 24, 25, 29, 30, 31, 32], "databasecfg": [3, 4, 6, 11], "use_ssh_tunnel": [3, 9, 29, 30], "database_nam": [3, 9, 29], "table_nam": [3, 4, 6, 9, 29, 30], "result_timestamp": [3, 15, 16, 17, 30], "resultfield": [3, 4, 13, 15, 16, 17, 18], "dict": [3, 4, 5, 6, 9, 11, 12, 15, 16, 17, 18, 29, 31], "logtabl": [3, 11, 13, 15, 16, 18, 19], "logger": [3, 4, 6, 11, 13, 29], "log": [3, 4, 6, 9, 11, 13, 17, 21, 29, 30, 31, 32], "databas": [3, 9, 11, 13, 15, 16, 17, 18, 21, 22, 23, 31, 32], "connect": [3, 4, 5, 6, 9, 13, 15, 16, 17, 18, 25, 27, 29, 30], "In": [3, 9, 13, 16, 18, 21, 22, 24, 27, 28, 30, 32], "addit": [3, 13, 21, 22, 26, 27, 28, 30, 32], "defin": [3, 8, 9, 13, 22, 29, 30, 31, 32], "structur": [3, 11, 21, 30, 32], "tabl": [3, 9, 13, 17, 18, 30, 32], "attribut": 3, "static": [3, 4, 5, 6, 11], "tupl": [3, 4, 5, 6, 9, 11, 16], "_extract_keyfield": 3, "dictconfig": [3, 12], "_extract_value_rang": 3, "keyfield_nam": [3, 12], "keyfield_cont": 3, "_extract_resultfield": 3, "table_config": 3, "_extract_logt": 3, "get_experiment_configur": [3, 4], "customcfg": 3, "custom_valu": [3, 16], "custom": [3, 13, 15, 16, 17, 18], "everi": [3, 12, 13, 17, 29, 30], "experi": [3, 9, 11, 13, 14, 22, 23, 32], "codecarboncfg": 3, "codecarbon": [3, 9, 11, 13, 22, 23, 32], "api": [3, 13, 23], "pyexperimentercfg": 3, "n_job": [3, 9, 13, 15, 16, 17, 18, 30], "database_configur": [3, 4, 6], "custom_configur": [3, 16], "codecarbon_configur": 3, "config_path": 3, "databaseconnector": [4, 5, 6, 11], "use_codecarbon": [4, 6, 9, 29], "_test_connect": [4, 5, 6], "close_connect": [4, 6], "commit": [4, 21, 26], "none": [4, 6, 9, 11, 12, 15, 16, 17, 18], "cursor": [4, 5, 6], "sql_statement": 4, "fetchal": 4, "create_table_if_not_exist": 4, "_table_exist": [4, 5, 6], "_compute_column": 4, "_exclude_fixed_column": 4, "column": [4, 9, 13, 16, 18, 29], "_create_t": 4, "table_typ": 4, "_get_create_table_queri": 4, "get_autoincr": [4, 5, 6], "self": [4, 16], "_table_has_correct_structur": [4, 5, 6], "typed_field": [4, 6], "fill_tabl": [4, 13], "combin": [4, 9, 12, 15], "_check_combination_in_existing_row": 4, "existing_row": 4, "_get_existing_row": [4, 5, 6], "column_nam": [4, 5, 6], "random_ord": [4, 5, 6, 9, 13, 16, 29], "_pull_open_experi": [4, 5, 6], "_select_open_experiments_from_db": 4, "random_order_str": [4, 5, 6], "_get_pull_experiment_queri": [4, 5, 6], "order_bi": [4, 5, 6], "_write_to_databas": 4, "pull_paused_experi": 4, "experiment_id": [4, 9, 11, 16, 17, 18, 29, 30], "prepare_write_queri": 4, "kei": [4, 9, 11, 13, 21, 27], "update_databas": 4, "condit": [4, 13, 19, 25, 29], "_prepare_update_queri": 4, "reset_experi": [4, 9, 13, 16, 29], "state": [4, 9, 13, 21, 29, 30], "_pop_experiments_with_statu": 4, "statu": [4, 9, 11, 13, 15, 16, 17, 18, 23, 29, 32], "_get_experiments_with_condit": 4, "_delete_experiments_with_condit": 4, "get_structure_from_t": [4, 5, 6], "execute_queri": 4, "queri": 4, "delete_t": [4, 9, 13], "get_logt": [4, 9, 17], "logtable_nam": [4, 9, 11, 30, 31], "panda": [4, 9, 13, 15, 16, 23, 29, 32], "datafram": [4, 9, 13, 15, 16, 29, 32], "get_codecarbon_t": [4, 9, 16, 18, 29], "get_tabl": [4, 9, 15, 16, 17, 18, 29], "databaseconnectorlit": 5, "_write_to_database_separ": 5, "_prepared_statement_placehold": [5, 6], "config_column": 5, "databaseconnectormysql": 6, "credential_path": 6, "": [6, 15, 16, 17, 18], "get_ssh_tunnel": 6, "start_ssh_tunnel": 6, "close_ssh_tunnel": [6, 29], "_create_database_if_not_exist": 6, "_get_database_credenti": 6, "_start_transact": 6, "readonli": 6, "fals": [6, 9, 15, 16, 17, 18, 29, 30], "pyexperimentererror": 7, "common": [7, 30], "class": [7, 13], "all": [7, 8, 9, 13, 15, 16, 17, 18, 21, 24, 25, 26, 28, 29, 30, 31, 32], "non": [7, 22], "exit": 7, "parametercombinationerror": [7, 9], "databaseerror": 7, "databasecreationerror": 7, "databaseconnectionerror": [7, 9], "sshtunnelerror": 7, "databasequeryerror": 7, "emptyfilldatabasecallerror": 7, "creatingtableerror": 7, "invalidresultfielderror": 7, "invalidlogfielderror": [7, 11], "tablehaswrongstructureerror": 7, "noexperimentsleftexcept": 7, "nopausedexperimentsexcept": [7, 9], "configerror": 7, "noconfigfileerror": 7, "filenotfounderror": 7, "invalidconfigerror": 7, "invalidvaluesinconfigur": [7, 9], "missinglogtableerror": 7, "invalidcolumnerror": 7, "invalidlogtableerror": 7, "experimentstatu": [8, 9, 13, 18, 29], "enum": [8, 13], "enumer": 8, "deriv": 8, "run": [8, 9, 13, 15, 18, 29, 32], "done": [8, 9, 15, 16, 17, 18, 24, 27, 29], "error": [8, 9, 13, 15, 16, 17, 18, 29, 30, 32], "paus": [8, 9, 13, 19], "experiment_configuration_file_path": [9, 15, 16, 17, 18, 28, 29], "o": [9, 13, 15, 16, 17, 18, 31], "join": [9, 15, 16, 17, 18, 31], "experiment_configur": [9, 29], "yml": [9, 15, 16, 17, 18, 27], "database_credential_file_path": [9, 28, 29], "database_credenti": [9, 27, 29], "true": [9, 15, 16, 17, 18, 29, 30, 31], "logger_nam": [9, 29], "py": [9, 13, 15, 16, 17, 18, 21, 23, 26, 29], "log_level": [9, 16, 18, 29, 30], "info": [9, 15, 16, 17, 18, 29], "log_fil": [9, 29], "handl": [9, 13], "initi": [9, 13, 17, 18], "collect": [9, 15, 17, 22], "respect": [9, 26], "result": [9, 11, 13, 14, 15, 18, 22, 23, 30, 31, 32], "close_ssh": 9, "close": 9, "ssh": [9, 13, 27, 30], "tunnel": [9, 13], "fill_table_from_combin": [9, 15], "fixed_parameter_combin": [9, 12, 15], "paramet": [9, 11, 12, 13, 16, 17, 18, 19, 22, 27, 29, 30, 31, 32], "row": [9, 13, 15, 16, 17, 18], "inform": [9, 13, 15, 16, 17, 21, 24, 26, 29, 31, 32], "exist": [9, 15, 16, 17, 18, 21, 29], "doe": [9, 15, 16, 17, 18, 26], "ha": [9, 13, 15, 16, 17, 18, 20, 21, 27, 29, 30, 31, 32], "been": [9, 13, 18, 20, 21, 30, 32], "afterward": [9, 15, 21, 29], "fill": [9, 13, 17, 18, 30, 31], "cartesian": [9, 12, 15, 16, 29], "product": [9, 12, 15, 16, 23, 29], "where": [9, 13, 21, 24, 28, 29, 30], "each": [9, 11, 12, 13, 15, 16, 17, 18, 28, 29, 30, 32], "up": [9, 16, 22], "note": [9, 15, 16, 17, 18, 27, 29, 31], "onli": [9, 13, 15, 18, 27, 29, 30, 31], "ar": [9, 11, 12, 13, 15, 16, 17, 21, 22, 23, 24, 29, 30, 31, 32], "whose": [9, 30], "alreadi": [9, 17, 26, 29], "set": [9, 13, 15, 16, 17, 18, 22, 27, 29, 32], "match": 9, "rais": [9, 11, 15, 16, 18], "exampl": [9, 20, 22, 24, 26, 27, 29, 30, 31], "call": [9, 11, 13, 15, 16, 29, 30, 31], "a2": 9, "2": [9, 15, 16, 17, 18, 23, 30], "4": [9, 15, 16, 17, 18, 23, 29, 30], "b": [9, 21], "c": [9, 13, 25], "cat": 9, "dog": 9, "accord": [9, 13, 15, 17, 21, 26, 29], "four": 9, "option": [9, 13, 30], "predefin": [9, 30], "type": [9, 12, 13, 15, 16, 17, 18, 28, 30], "default": [9, 15, 16, 17, 26, 27, 29, 30], "dictionari": [9, 11], "possibl": [9, 28, 30], "fill_table_from_config": [9, 16, 17, 18, 28, 29], "fill_table_with_row": [9, 16, 29], "entri": [9, 13, 15, 16, 30, 31], "made": [9, 21], "pair": [9, 11], "valueerror": [9, 15, 16, 18, 21], "experiment_funct": [9, 16, 28, 29], "callabl": 9, "resultprocessor": [9, 11, 13, 15, 16, 17, 18, 29, 31], "max_experi": [9, 13, 15, 16, 17, 18, 28, 29], "pull": [9, 13, 26, 32], "open": [9, 13, 14, 15, 16, 17, 18, 29, 32], "mani": [9, 13, 29], "process": [9, 11, 13, 15, 16, 18, 28, 30, 31, 32], "start": [9, 13, 16, 18, 21, 22, 28, 29, 30], "specifi": [9, 17, 22, 29, 30], "singl": [9, 13, 15, 16, 17, 22, 28, 29, 31], "sequenti": [9, 17, 29], "until": [9, 29], "By": [9, 27, 29], "order": [9, 13, 29], "determin": [9, 16, 29], "id": [9, 13, 15, 16, 17, 18, 29], "randomli": 9, "after": [9, 15, 16, 18, 21, 22, 29, 32], "continu": [9, 13, 19, 20, 29], "written": [9, 15, 16, 29, 30, 31], "wa": [9, 13, 22, 29], "success": 9, "return": [9, 12, 18, 29], "correspond": [9, 17, 23, 27, 29, 32], "otherwis": [9, 21, 25, 32], "occur": [9, 13, 24, 29], "chang": [9, 21], "case": [9, 16, 18, 21, 24, 27, 29, 30, 32], "altern": [9, 29], "unpaus": [9, 18], "again": [9, 16, 21], "unpause_experi": [9, 18, 29], "within": [9, 13, 22, 30, 31], "befor": [9, 13, 16, 21, 26], "local": [9, 21, 27], "appear": 9, "function": [9, 13, 21, 22, 29, 30, 32], "should": [9, 15, 16, 17, 21, 24, 29], "differ": [9, 12, 13, 17, 18, 22, 28, 29, 31, 32], "parametr": [9, 29], "number": [9, 14, 15, 17, 26, 30], "parallel": [9, 13, 15, 16, 22, 28, 29, 30], "taken": 9, "wrong": [9, 13], "data": [9, 15, 16, 17, 18, 30], "context": [9, 28], "mean": [9, 15, 16, 17, 18, 22, 27, 29, 31], "its": [9, 13, 29, 30], "param": [9, 11, 12], "_description_": 9, "_worker": 9, "worker": [9, 13], "repeatedli": 9, "_execution_wrapp": [9, 13], "one": [9, 13, 14, 15, 16, 17, 18, 21, 22, 27, 29, 30], "Then": [9, 21], "therebi": [9, 22, 23, 30], "have": [9, 13, 15, 16, 17, 18, 20, 21, 24, 27, 28, 29, 30, 31], "directli": [9, 21], "finish": [9, 15, 16, 17, 18, 32], "successfulli": [9, 15, 16, 17, 18], "addition": [9, 13, 15, 16, 17, 21, 24, 29, 30, 32], "due": [9, 13, 15, 16, 17, 21], "noexperimentslefterror": 9, "left": 9, "_execute_experi": [9, 16], "keyfield_valu": [9, 16], "_write_codecarbon_config": 9, "write": [9, 11, 13, 15, 16, 17, 18, 30, 31, 32], "_delete_codecarbon_config": 9, "delet": [9, 29], "reset": [9, 13, 16, 28, 32], "either": [9, 21, 27, 28], "variabl": [9, 17], "length": 9, "argument": [9, 27], "multipl": [9, 13, 15, 16, 28, 29, 31], "drop": 9, "associ": [9, 25], "pd": [9, 16, 18], "database_config": 11, "db_connector": 11, "whenev": [11, 13], "process_result": [11, 15, 16, 17, 18, 31], "field": [11, 13, 15, 17, 22], "_write_emiss": 11, "emission_data": 11, "output": [11, 16, 18, 21, 26, 30], "emissionsdata": 11, "offline_mod": [11, 16, 18, 30], "_add_timestamps_to_result": 11, "process_log": [11, 17, 31], "append": 11, "invalid": 11, "without": [11, 21, 25, 29], "prefix": [11, 30], "table_name__": 11, "inner": 11, "columnsnam": 11, "_valid_logtable_log": 11, "_change_statu": 11, "_write_error": 11, "error_msg": 11, "_set_machin": 11, "machine_id": 11, "_set_nam": 11, "_valid_result_field": 11, "result_field": 11, "load_credential_config": 12, "load": [12, 16, 18], "write_codecarbon_config": 12, "codecarbon_config": 12, "extract_codecarbon_column": 12, "combine_fill_table_paramet": 12, "float": 12, "combien": 12, "These": [12, 22], "combiend": 12, "other": [12, 15, 21, 25, 30], "fix": [12, 15, 26, 30], "similar": [12, 20, 21], "union": 12, "like": [12, 21, 31], "howev": [12, 17, 22, 27, 29], "insid": 12, "two": [12, 16, 18, 29, 30], "item": 12, "get_timestamp_represent": 12, "about": [13, 15, 16, 17, 24, 29, 30], "distribut": [13, 14, 22, 25, 32], "machin": [13, 15, 16, 17, 18, 21, 23, 28, 30, 32], "improv": [13, 21, 24], "usag": [13, 15, 19, 30, 31], "more": [13, 15, 17, 29, 30, 31], "flexibl": 13, "user": [13, 21, 27, 32], "friendli": 13, "sql": 13, "statement": 13, "ci": 13, "9": [13, 15, 16, 17, 18, 21, 23, 26], "remov": 13, "paper": 13, "draft": 13, "action": [13, 22, 25], "logfield": 13, "boolean": [13, 30], "string": 13, "sqlite": [13, 15, 16, 17, 18, 28, 30], "convert": 13, "accordingli": 13, "bugfix": 13, "same": [13, 15, 17, 21, 28, 29], "time": [13, 15, 16, 18, 21, 22, 28, 29, 31], "passphras": [13, 27], "correctli": [13, 21], "address": [13, 22, 27], "code": [13, 15, 16, 21, 24, 28, 29, 31, 32], "were": [13, 15, 16, 17, 18], "indent": 13, "incorrectli": 13, "later": [13, 18, 29], "support": [13, 15, 22, 27, 28, 29, 30], "yaml": 13, "credenti": [13, 21, 28, 29, 30, 32], "jump": 13, "host": 13, "problem": [13, 20, 24], "caus": 13, "some": [13, 16, 17, 21, 24, 30, 31], "twice": 13, "temporari": 13, "termin": [13, 29], "random": [13, 15, 16, 17, 18, 29, 32], "hotfix": 13, "cluster": 13, "runner": 13, "could": [13, 20, 21], "reflect": 13, "thei": [13, 16, 30], "now": [13, 16, 17, 18], "might": [13, 27], "help": [13, 24, 30], "interest": [13, 30], "messag": 13, "better": 13, "feedback": [13, 21], "why": [13, 28], "did": [13, 21], "work": [13, 21, 22, 24, 26, 27, 30], "implement": 13, "level": [13, 29], "furthermor": [13, 16, 30, 31], "formatt": 13, "well": [13, 15, 17, 22, 30], "handler": [13, 28], "ensur": [13, 21], "both": [13, 28], "consol": 13, "notebook": [13, 15, 16, 17, 18, 26], "longer": [13, 16], "overwrit": [13, 29], "basicconfig": 13, "framework": 13, "measur": [13, 22, 30], "carbon": [13, 15, 16, 17, 22, 29, 30, 32], "emiss": [13, 15, 16, 17, 22, 29, 30, 32], "issu": [13, 20, 21], "templat": 13, "request": [13, 26], "extend": [13, 30], "contribut": 13, "replac": [13, 15, 16, 17, 21], "mysql": [13, 21, 27, 28, 30, 32], "connector": 13, "depend": [13, 15, 21, 23, 24, 29, 30], "pymysql": [13, 23], "instead": [13, 15, 17, 28, 29], "escap": 13, "perform": [13, 17, 22, 30, 31], "includ": [13, 21, 23, 25, 30, 32], "joss": [13, 14], "public": [13, 14, 26], "increment": 13, "detail": [13, 24, 29, 30], "rework": 13, "larg": 13, "fail": [13, 32], "miss": 13, "directori": [13, 15, 16, 17, 18, 30], "cover": [13, 30], "date": 13, "identif": 13, "stack": 13, "trace": 13, "multiprocess": 13, "joblib": [13, 23], "anymor": 13, "workflow": 13, "push": [13, 21], "websit": [13, 21], "separ": [13, 21, 29, 30, 32], "branch": [13, 21], "gh": 13, "access": [13, 26, 27, 28, 29, 30], "readm": [13, 23], "poetri": [13, 21, 23, 26], "cpu": [13, 15, 17, 18], "max": 13, "renam": 13, "spawn": 13, "onc": [13, 28, 31, 32], "advanc": [13, 28], "complet": [13, 29, 30], "select": [13, 21], "limit": [13, 15, 16, 22, 25, 30], "transact": 13, "reach": 13, "hold": 13, "modifi": [13, 17, 25, 30], "abl": 13, "get": [13, 17, 18, 26], "referenc": 13, "db": 13, "unfavor": 13, "see": [13, 21, 29], "abov": [13, 16, 17, 25, 26, 29, 30, 31], "simpl": [13, 26], "github": [13, 20, 21, 23, 24], "cach": 13, "virtual": 13, "environ": [13, 21, 26], "prevent": [13, 28], "cut": 13, "down": 13, "roundtrip": 13, "matrix": 13, "variou": 13, "7": [13, 15, 16, 17, 18, 23], "8": [13, 14, 15, 16, 17, 18, 23], "ubuntu": 13, "maco": 13, "window": 13, "exclud": [13, 16, 30], "sinc": [13, 15, 17, 18, 22], "take": [13, 30], "veri": [13, 21], "long": 13, "restructur": 13, "shortcut": 13, "integ": 13, "timestep": 13, "give": [13, 21, 24], "instanc": [13, 29, 32], "hpc": [13, 15, 16, 22, 28, 29], "obtain": [13, 15, 16, 17, 25, 30], "export": [13, 29, 32], "e": [13, 15, 16, 17, 21, 23, 28, 29, 30, 31, 32], "g": [13, 16, 21, 23, 29, 31], "latex": [13, 29, 32], "robust": 13, "creation": [13, 29], "jupyt": 13, "explain": 13, "grid": [13, 17, 19, 29, 32], "duplic": 13, "quotat": 13, "mark": 13, "compon": [13, 29], "No": [13, 15, 16, 17, 18], "summari": 13, "avail": [13, 15, 17, 18, 21, 29], "releas": 13, "scientif": [14, 23], "we": [14, 15, 17, 18, 21, 22, 27, 28, 29], "would": [14, 21], "appreci": [14, 21], "et": 14, "al": 14, "2023": 14, "track": [14, 15, 17, 18, 22, 29, 30, 32], "journal": 14, "sourc": [14, 21], "softwar": [14, 25], "84": 14, "5149": 14, "http": [14, 21, 23, 26], "doi": 14, "org": [14, 26], "10": [14, 15, 16, 17, 18], "21105": 14, "05149": 14, "articl": [14, 21], "tornede2023": 14, "titl": [14, 24, 26], "author": [14, 23, 25], "publish": [14, 25, 26], "year": 14, "volum": 14, "url": [14, 26], "show": [15, 16, 17, 18, 27], "programmat": 15, "vector": 15, "entir": 15, "scikit": [15, 16, 17, 18], "learn": [15, 16, 17, 18, 23], "found": [15, 16, 17, 18, 21, 29, 30, 31, 32], "here": [15, 16, 31], "import": [15, 16, 17, 18, 21, 28, 29, 31], "content": [15, 16, 17, 18, 26, 29], "example_conditional_grid": 15, "dataset": [15, 16, 17, 18, 29, 30, 31], "varchar": [15, 16, 17, 18, 30], "50": [15, 16, 17, 18, 30], "cross_validation_split": [15, 16, 17, 18, 29, 30], "seed": [15, 16, 17, 18, 29, 30, 31, 32], "kernel": [15, 16, 17, 18, 29, 30], "gamma": [15, 16, 17, 18], "degre": 15, "coef0": 15, "train_f1": [15, 16, 18, 30, 31], "decim": [15, 16, 18], "train_accuraci": [15, 16, 17, 18, 30, 31], "test_f1": [15, 16, 17, 18, 30, 31], "test_accuraci": [15, 16, 17, 18, 30, 31], "sample_data": [15, 16, 17, 18], "mkdir": [15, 16, 17, 18], "w": [15, 16, 17, 18], "f": [15, 16, 17, 18], "next": [15, 16, 17, 18], "dummi": [15, 16, 17], "reason": [15, 16, 17, 27], "numpi": [15, 16, 17, 18, 21, 23], "np": [15, 16, 17, 18, 31], "sklearn": [15, 16, 17, 18], "load_iri": [15, 16, 17, 18], "model_select": [15, 16, 17, 18], "cross_valid": [15, 16, 17, 18], "pipelin": [15, 16, 17, 18, 30, 31], "make_pipelin": [15, 16, 17, 18], "preprocess": [15, 16, 17, 18], "standardscal": [15, 16, 17, 18], "svm": [15, 16, 17, 18], "svc": [15, 16, 17, 18], "sleep": [15, 18], "randint": 15, "def": [15, 16, 17, 18, 29, 31], "run_svm": 15, "custom_config": [15, 16, 17, 18], "0": [15, 16, 17, 18, 23, 27, 30], "5": [15, 16, 17, 18, 23, 30], "x": [15, 16, 17, 18], "y": [15, 16, 17, 18], "target": [15, 16, 17, 18], "linear": [15, 16, 17, 18, 30], "elif": 15, "poli": [15, 16, 17, 18, 29, 30], "rbf": [15, 16, 17, 18, 30], "model": [15, 16, 17, 18], "iri": [15, 16, 17, 18], "score": [15, 16, 17, 18, 31], "cv": [15, 16, 17, 18], "accuraci": [15, 16, 17, 18, 30], "f1_micro": [15, 16, 17, 18], "return_train_scor": [15, 16, 17, 18], "train_f1_micro": [15, 16, 17, 18, 31], "test_f1_micro": [15, 16, 17, 18, 31], "actual": [15, 16, 17, 21, 28, 29, 30], "previous": [15, 16, 29], "job": [15, 16, 17, 28, 29], "especi": [15, 16], "3": [15, 16, 17, 18, 21, 22, 23, 26, 30], "svm_experimenter_01": 15, "2024": [15, 16, 17, 18], "03": [15, 16, 17, 18], "11": [15, 16, 17, 18, 23], "08": [15, 16, 17, 18], "04": 15, "22": [15, 17, 27], "464": 15, "warn": [15, 16, 17, 18], "465": 15, "466": 15, "467": 15, "468": 15, "469": 15, "470": 15, "471": 15, "section": [15, 17, 18, 27, 29, 30, 31], "473": 15, "three": 15, "line": [15, 16, 29], "present": 15, "nan": [15, 16, 18], "thu": [15, 28], "uncondition": 15, "555": 15, "55": 15, "skip": [15, 16, 17, 18], "creation_d": [15, 16, 17, 18], "start_dat": [15, 16, 17, 18], "end_dat": [15, 16, 17, 18], "6": [15, 16, 17, 18], "12": [15, 16, 17, 18], "13": [15, 16, 17], "14": [15, 16, 17], "15": [15, 16, 17, 18, 23, 30], "16": [15, 17, 18], "17": [15, 17], "18": [15, 17, 18], "19": [15, 16, 17], "20": [15, 17], "21": 15, "23": [15, 16, 17], "24": [15, 16, 29], "25": [15, 16, 18, 30], "26": [15, 17], "27": [15, 17], "28": [15, 16, 17], "29": 15, "30": 15, "31": [15, 16, 17], "32": [15, 16, 17], "33": 15, "34": [15, 16, 18], "35": [15, 17, 18], "36": [15, 17], "37": [15, 16], "38": 15, "39": [15, 17, 18], "40": 15, "41": [15, 16], "42": [15, 16, 17, 18, 29], "43": [15, 18], "44": [15, 18], "45": [15, 16], "46": 15, "47": 15, "48": 15, "49": 15, "51": 15, "52": [15, 16, 18], "53": [15, 16], "54": [15, 16, 18], "just": [15, 17], "predifin": [15, 17], "amount": [15, 17], "relat": [15, 16, 17, 20], "setup": [15, 17, 18, 22, 32], "ram": [15, 17, 18], "gpu": [15, 17, 18], "mode": [15, 17, 18], "fall": [15, 17, 18], "back": [15, 17, 18, 32], "constant": [15, 17, 18], "saw": [15, 17, 18], "12th": [15, 16, 17, 18], "gen": [15, 16, 17, 18], "intel": [15, 16, 17, 18], "r": [15, 16, 17, 18, 26], "tm": [15, 16, 17, 18], "i7": [15, 16, 17, 18], "1260p": [15, 16, 17, 18], "don": [15, 17, 18, 20], "t": [15, 17, 18, 20, 23], "know": [15, 17, 18, 20], "contact": [15, 17, 18], "u": [15, 17, 18], "consumpt": [15, 17, 18, 30], "gt": [15, 17, 18], "tracker": [15, 17, 18], "metadata": [15, 17, 18], "platform": [15, 17, 18], "system": [15, 17, 18, 22, 23, 29, 32], "linux": [15, 17, 18], "146": [15, 17, 18], "microsoft": [15, 17, 18], "wsl2": [15, 17, 18], "x86_64": [15, 17, 18], "glibc2": [15, 17, 18], "475": [15, 17, 18], "gb": [15, 17, 18], "count": [15, 17, 18], "energi": [15, 17, 18], "consum": [15, 17, 18, 22], "000000": [15, 17, 18], "kwh": [15, 17, 18], "power": [15, 17, 18, 30], "803128719329834": [15, 17, 18], "000001": [15, 18], "total": [15, 17, 18], "electr": [15, 17, 18], "begin": [15, 16, 17, 18, 21], "000002": [15, 17], "000013": [15, 16], "000014": 15, "000012": [15, 16], "000015": 15, "59": 15, "05": [15, 18], "00": 15, "06": [15, 16], "57": [15, 16, 18], "58": [15, 16], "01": 15, "07": [15, 16, 18], "02": [15, 16], "09": [15, 16, 18], "000007": 15, "000048": 15, "000055": 15, "56": 15, "575": 15, "worklaptop": [15, 16, 17, 18], "975": 15, "966667": [15, 16, 17, 18], "look": [15, 17], "our": [15, 17, 22], "over": [16, 17, 31, 32], "example_general_usag": [16, 18, 30], "255": [16, 30], "stop": [16, 18, 30], "sigmoid": [16, 17, 18, 30], "longtext": [16, 18, 30], "datapath": [16, 30], "measure_power_sec": [16, 18, 30], "tracking_mod": [16, 18, 30], "save_to_fil": [16, 18, 30], "output_dir": [16, 18, 30], "run_ml": [16, 17, 31], "read_csv": [16, 18], "example_notebook": [16, 17, 18], "452": 16, "454": 16, "455": 16, "456": 16, "458": 16, "459": 16, "error_dataset": 16, "533": 16, "559": 16, "randmli": 16, "chosen": [16, 30], "exeecut": 16, "home": 16, "anaconda3": 16, "env": [16, 21], "lib": 16, "python3": 16, "site": 16, "168": 16, "futurewarn": 16, "behavior": 16, "concaten": 16, "empti": 16, "na": 16, "deprec": 16, "futur": 16, "retain": 16, "old": [16, 31], "relev": 16, "concat": 16, "oper": [16, 29], "df": 16, "from_record": 16, "090": 16, "traceback": 16, "recent": 16, "last": 16, "372": 16, "final_statu": 16, "tmp": 16, "ipykernel_19831": 16, "1244630566": 16, "137": 16, "standardsca": [16, 18], "971667": [16, 17, 18], "936667": [16, 17], "933333": [16, 17], "975000": [16, 17], "896667": [16, 17], "893333": [16, 17], "n": [16, 18, 21, 26], "h": [16, 23], "As": 16, "those": [16, 22, 32], "anoth": [16, 21, 29], "try": [16, 21], "simpli": 16, "pass": [16, 29, 30], "remain": 16, "orer": 16, "increas": 16, "191": 16, "192": 16, "491": 16, "result_table_agg": 16, "groupbi": [16, 29], "numeric_onli": 16, "945": 16, "94": 16, "style": 16, "to_latex": [16, 29], "tabular": 16, "lr": 16, "amp": 16, "940000": 16, "integr": 16, "suffix": 16, "_codecarbon": [16, 29, 30], "codecarbon_timestamp": [16, 18], "project_nam": [16, 18], "run_id": [16, 18], "duration_second": [16, 18], "emissions_kg": [16, 18], "emissions_rate_kg_sec": [16, 18], "cpu_power_watt": [16, 18], "gpu_power_watt": [16, 18], "cpu_model": [16, 18], "gpu_count": [16, 18], "gpu_model": [16, 18], "longitud": [16, 18], "latitud": [16, 18], "ram_total_s": [16, 18], "on_cloud": [16, 18], "power_usage_effici": [16, 18], "11t08": [16, 18], "1620091b": 16, "8b86": 16, "4b23": 16, "b54e": 16, "c4cf3020c04d": 16, "088837": 16, "598312e": 16, "000004": 16, "5312": [16, 18], "4771": [16, 18], "47501": [16, 18], "c60a2cf3": 16, "7e01": 16, "49b2": 16, "b40e": 16, "5fb2d6023f23": 16, "086848": 16, "585882e": 16, "65607dcf": 16, "143f": 16, "4721": 16, "9003": 16, "321205ce15eb": 16, "090465": 16, "729579e": 16, "c3c63ce1": 16, "6a16": 16, "4060": 16, "a9e9": 16, "acb5fb73e3d6": 16, "080714": 16, "314905e": 16, "4c166d72": 16, "1a0d": 16, "477b": 16, "b70b": 16, "620914c09edb": 16, "089772": 16, "712606e": 16, "2d2efdca": 16, "c9ae": 16, "4eab": 16, "955a": 16, "2ec5f047bb5d": 16, "070777": 16, "878039e": 16, "42fc7f5d": 16, "2157": 16, "42dd": 16, "9c4d": 16, "ff47c9d60d71": 16, "076391": 16, "133284e": 16, "4158e707": 16, "e153": 16, "4faf": 16, "b171": 16, "7713067c018e": 16, "101170": 16, "188866e": 16, "ec656b86": 16, "801c": 16, "4c3a": 16, "ae96": 16, "190249454c59": 16, "088437": 16, "639145e": 16, "4efdd1ef": 16, "946e": 16, "49f5": 16, "9d3b": 16, "8ddf46839d76": 16, "090036": 16, "723546e": 16, "97294712": 16, "72a2": 16, "49dd": 16, "8173": 16, "6ecf9c580b37": 16, "083235": 16, "419110e": 16, "7bbe7b09": 16, "301f": 16, "4064": 16, "8dc0": 16, "fd578221b525": 16, "079192": 16, "260114e": 16, "e986f632": 16, "5ee3": 16, "437a": 16, "ac43": 16, "52c31578600a": 16, "048913": 16, "921918e": 16, "65d3eead": 16, "d8f5": 16, "4cd7": 16, "9ebd": 16, "2bda51acab85": 16, "040884": 16, "582226e": 16, "carbon_emiss": 16, "sum": 16, "ram_power_watt": 16, "cpu_energy_kw": 16, "gpu_energy_kw": 16, "ram_energy_kw": 16, "energy_consumed_kw": 16, "cpu_count": 16, "105": [16, 18], "11567": 16, "000005": [16, 18], "000057": 16, "595": [16, 17], "070479": 16, "193276e": 16, "224": 16, "216": 16, "650139": 16, "lrr": 16, "understand": [17, 21, 24], "basic": [17, 18], "pyexeriment": 17, "purpos": [17, 25, 28], "demonstr": [17, 31], "slightli": 17, "adapt": [17, 21, 27], "goal": 17, "small": 17, "find": [17, 20], "best": 17, "search": 17, "example_logt": 17, "best_kernel_accuraci": 17, "best_kernel_f1": 17, "train_scor": 17, "f1": [17, 30], "doubl": [17, 18, 30], "iter": 17, "init": 17, "performance_f1": 17, "performance_accuraci": 17, "reproduc": [17, 24], "492": 17, "493": 17, "494": 17, "495": 17, "example_logtables__train_scor": 17, "496": 17, "example_logtables__test_f1": 17, "example_logtables__test_accuraci": 17, "497": 17, "498": 17, "499": 17, "read": [17, 22], "timestamp": [17, 18, 30], "implicit": 17, "000003": [17, 18], "076": 17, "heavili": 18, "ipynb": 18, "configuraiton": 18, "comparison": 18, "paused_at_second": 18, "resumed_at_second": 18, "example_pause_and_continu": 18, "five": 18, "datetim": [18, 30], "pause_after_5_second": 18, "065": 18, "066": 18, "067": 18, "068": 18, "069": 18, "000008": 18, "000059": 18, "000068": 18, "537": 18, "710142e": 18, "lastli": 18, "shown": [18, 30], "resume_after_5_second": 18, "a87e6dcb": 18, "aac": 18, "44b1": 18, "9d83": 18, "c9744312ce62": 18, "096071": 18, "471057e": 18, "5132d06c": 18, "9a59": 18, "4d0e": 18, "8dc5": 18, "0afa4984a5f8": 18, "133938": 18, "813803e": 18, "question": 20, "mayb": 20, "suitabl": [20, 24], "solut": 20, "someon": [20, 21], "els": [20, 21], "situat": 20, "anyth": [20, 26], "idea": 21, "bug": [21, 24], "had": 21, "plan": 21, "yourself": 21, "great": 21, "comment": 21, "what": [21, 24], "exactli": 21, "At": [21, 29], "mention": 21, "review": 21, "fork": 21, "blog": 21, "post": 21, "go": [21, 24], "click": 21, "button": [21, 26], "top": 21, "right": [21, 25], "corner": 21, "clone": 21, "On": [21, 22], "usernam": 21, "com": [21, 23, 27], "remot": 21, "origin": 21, "upstream": 21, "switch": 21, "feature_branch_nam": 21, "meaning": 21, "fetch": 21, "v": 21, "checkout": 21, "anaconda": 21, "pandoc": 21, "suggest": 21, "pytest": [21, 23], "succeed": 21, "upgrad": 21, "good": [21, 28], "usabl": [21, 24], "mandatori": 21, "locat": [21, 27, 29, 30], "affect": 21, "succe": 21, "But": 21, "test_run_experi": 21, "test_run_mysql_experi": 21, "doc": 21, "html": 21, "correct": 21, "destin": 21, "full": 21, "facilit": 22, "subsequ": 22, "evalu": [22, 31], "empir": 22, "studi": 22, "algorithm": 22, "particular": [22, 25], "design": [22, 32], "reduc": 22, "involv": 22, "effort": 22, "significantli": 22, "intend": [22, 23], "research": [22, 23], "artifici": [22, 23], "intellig": [22, 23], "addtion": 22, "analysi": 22, "often": 22, "accompani": 22, "input": [22, 32], "variant": 22, "properti": 22, "individu": 22, "usual": 22, "independ": 22, "manner": [22, 23], "requir": [22, 23, 30], "extens": 22, "aggreg": 22, "report": [22, 24], "monitor": 22, "restart": [22, 32], "tediou": 22, "challeng": 22, "central": 22, "massiv": 22, "allevi": 22, "aforement": 22, "overhead": 22, "eas": 22, "easiest": 22, "dive": 22, "partial": 22, "german": 22, "feder": 22, "ministri": 22, "econom": 22, "affair": 22, "climat": 22, "fleme": 22, "03e16012f": 22, "foundat": 22, "dfg": 22, "collabor": 22, "center": 22, "fly": 22, "comput": [22, 32], "sfb": 22, "901": 22, "160364472": 22, "pypi": 23, "2a1": 23, "ml": 23, "captur": 23, "unifi": 23, "ai": 23, "uni": 23, "hannov": 23, "de": 23, "stud": 23, "upb": 23, "ifi": 23, "lmu": 23, "unisabana": 23, "edu": 23, "co": 23, "licens": 23, "mit": [23, 25], "md": 23, "io": 23, "keyword": [23, 27], "executor": 23, "classifi": 23, "stabl": 23, "audienc": 23, "scienc": 23, "topic": 23, "engin": 23, "program": 23, "languag": 23, "jupyterlab": 23, "sshtunnel": 23, "mock": 23, "nbsphinx": 23, "galleri": 23, "rtd": 23, "theme": 23, "recommonmark": 23, "freezegun": 23, "backend": [23, 30], "masonri": 23, "third": 24, "person": [24, 25], "vision": 24, "featur": [24, 29, 32], "summar": [24, 29], "necessari": [24, 32], "produc": 24, "assumpt": [24, 32], "think": 24, "And": 24, "label": 24, "enhanc": 24, "face": 24, "copyright": 25, "2021": 25, "2022": 25, "permiss": 25, "herebi": 25, "grant": 25, "free": 25, "charg": 25, "copi": [25, 30], "deal": 25, "restrict": 25, "merg": [25, 26], "sublicens": 25, "sell": 25, "permit": 25, "whom": 25, "furnish": 25, "subject": 25, "notic": 25, "shall": 25, "substanti": 25, "portion": 25, "THE": 25, "AS": 25, "warranti": 25, "OF": 25, "kind": 25, "express": 25, "OR": 25, "impli": 25, "BUT": 25, "TO": 25, "merchant": 25, "fit": 25, "FOR": 25, "AND": 25, "noninfring": 25, "IN": 25, "NO": 25, "event": 25, "holder": 25, "BE": 25, "liabl": 25, "claim": 25, "damag": 25, "liabil": 25, "whether": [25, 26], "contract": 25, "tort": 25, "aris": [25, 32], "WITH": 25, "legaci": 26, "known": 26, "token": 26, "store": [26, 28, 30], "xxxxx": 26, "readi": [26, 29], "extra": 26, "index": 26, "repeat": 26, "changelog": 26, "main": [26, 30], "squash": 26, "tag": 26, "With": 26, "press": 26, "attach": 26, "explicitli": 27, "server": 27, "mysqlserv": 27, "example_us": 27, "password": 27, "example_password": 27, "secur": 27, "ip": 27, "jumphost": 27, "ssh_hostnam": 27, "port": 27, "optional_ssh_port": 27, "sshmysqlserv": 27, "ssh_private_key_password": 27, "remote_address": 27, "optional_mysql_server_address": 27, "127": 27, "remote_port": 27, "optional_mysql_server_port": 27, "3306": 27, "local_address": 27, "optional_local_address": 27, "local_port": 27, "optional_local_port": 27, "privat": 27, "across": 28, "procedur": 28, "consider": 28, "share": 28, "concurr": 28, "choic": 28, "recommend": 28, "while": [28, 31], "theoret": 28, "introduc": 28, "respons": 28, "typic": [28, 30], "node": 28, "few": 29, "beforehand": 29, "run_experi": [29, 31], "someth": 29, "assum": 29, "ignor": [29, 30], "complex": 29, "new_data": 29, "new_data_2": 29, "fashion": 29, "comma": [29, 30], "interrupt": 29, "result_t": 29, "print": 29, "index_nam": 29, "footprint": [29, 30], "enabl": [29, 30], "conveni": 29, "certain": [29, 32], "resum": 29, "run_experiment_until_paus": 29, "custom_field": [29, 31], "some_reason_to_paus": 29, "thing": 29, "point": 29, "togeth": [29, 30], "run_experiment_after_paus": 29, "primarili": 30, "subsect": 30, "dataset1": 30, "dataset2": 30, "dataset3": 30, "pipeline_evalu": 30, "incumb": 30, "flag": 30, "decid": 30, "identifi": 30, "henc": 30, "thought": 30, "numer": 30, "rang": 30, "size": 30, "depth": [30, 31], "showcas": [30, 31], "string_input_nam": 30, "int_input_nam": 30, "int_shortened_input_nam": 30, "numeric_input_nam": 30, "numeric_shortened_input_nam": 30, "form": 30, "consist": 30, "intermedi": 30, "similarli": 30, "underli": 30, "belong": 30, "__": 30, "commonli": 30, "maximum": 30, "under": 30, "deactiv": 30, "per": 30, "whole": 30, "estim": 30, "region": 30, "devic": 30, "save": 30, "own": 30, "start_tim": 31, "loop": 31, "epoch": 31, "stuff": 31, "new_best_perform": 31, "min": 31, "runtim": 31, "break": 31, "test": 31, "re": 31, "overwritten": 31, "subset": [31, 32], "resultfield_nam": 31, "resultfield_valu": 31, "logtable_field_nam": 31, "logtable_field_valu": 31, "schema": 32, "figur": 32, "uniqu": 32, "through": 32, "domain": 32, "desir": 32, "overal": 32, "jointli": 32, "averag": 32, "view": 32}, "objects": {"": [[10, 0, 0, "-", "py_experimenter"]], "py_experimenter": [[3, 0, 0, "-", "config"], [4, 0, 0, "-", "database_connector"], [5, 0, 0, "-", "database_connector_lite"], [6, 0, 0, "-", "database_connector_mysql"], [7, 0, 0, "-", "exceptions"], [8, 0, 0, "-", "experiment_status"], [9, 0, 0, "-", "experimenter"], [11, 0, 0, "-", "result_processor"], [12, 0, 0, "-", "utils"]], "py_experimenter.config": [[3, 1, 1, "", "Cfg"], [3, 1, 1, "", "CodeCarbonCfg"], [3, 1, 1, "", "CustomCfg"], [3, 1, 1, "", "DatabaseCfg"], [3, 1, 1, "", "Keyfield"], [3, 1, 1, "", "PyExperimenterCfg"]], "py_experimenter.config.Cfg": [[3, 2, 1, "", "extract_config"], [3, 2, 1, "", "valid"]], "py_experimenter.config.CodeCarbonCfg": [[3, 2, 1, "", "extract_config"], [3, 2, 1, "", "valid"]], "py_experimenter.config.CustomCfg": [[3, 2, 1, "", "extract_config"], [3, 2, 1, "", "valid"]], "py_experimenter.config.DatabaseCfg": [[3, 2, 1, "", "_extract_keyfields"], [3, 2, 1, "", "_extract_logtables"], [3, 2, 1, "", "_extract_resultfields"], [3, 2, 1, "", "_extract_value_range"], [3, 2, 1, "", "extract_config"], [3, 2, 1, "", "get_experiment_configuration"], [3, 2, 1, "", "valid"]], "py_experimenter.config.Keyfield": [[3, 3, 1, "", "dtype"], [3, 3, 1, "", "name"], [3, 3, 1, "", "values"]], "py_experimenter.config.PyExperimenterCfg": [[3, 2, 1, "", "extract_config"], [3, 2, 1, "", "valid"]], "py_experimenter.database_connector": [[4, 1, 1, "", "DatabaseConnector"]], "py_experimenter.database_connector.DatabaseConnector": [[4, 2, 1, "", "_check_combination_in_existing_rows"], [4, 2, 1, "", "_compute_columns"], [4, 2, 1, "", "_create_table"], [4, 2, 1, "", "_delete_experiments_with_condition"], [4, 2, 1, "", "_exclude_fixed_columns"], [4, 2, 1, "", "_get_create_table_query"], [4, 2, 1, "", "_get_existing_rows"], [4, 2, 1, "", "_get_experiments_with_condition"], [4, 2, 1, "", "_get_pull_experiment_query"], [4, 2, 1, "", "_pop_experiments_with_status"], [4, 2, 1, "", "_prepare_update_query"], [4, 2, 1, "", "_pull_open_experiment"], [4, 2, 1, "", "_select_open_experiments_from_db"], [4, 2, 1, "", "_table_exists"], [4, 2, 1, "", "_table_has_correct_structure"], [4, 2, 1, "", "_test_connection"], [4, 2, 1, "", "_write_to_database"], [4, 2, 1, "", "close_connection"], [4, 2, 1, "", "commit"], [4, 2, 1, "", "connect"], [4, 2, 1, "", "create_table_if_not_existing"], [4, 2, 1, "", "cursor"], [4, 2, 1, "", "delete_table"], [4, 2, 1, "", "execute"], [4, 2, 1, "", "execute_queries"], [4, 2, 1, "", "fetchall"], [4, 2, 1, "", "fill_table"], [4, 2, 1, "", "get_autoincrement"], [4, 2, 1, "", "get_codecarbon_table"], [4, 2, 1, "", "get_experiment_configuration"], [4, 2, 1, "", "get_logtable"], [4, 2, 1, "", "get_structure_from_table"], [4, 2, 1, "", "get_table"], [4, 2, 1, "", "prepare_write_query"], [4, 2, 1, "", "pull_paused_experiment"], [4, 2, 1, "", "random_order_string"], [4, 2, 1, "", "reset_experiments"], [4, 2, 1, "", "update_database"]], "py_experimenter.database_connector_lite": [[5, 1, 1, "", "DatabaseConnectorLITE"]], "py_experimenter.database_connector_lite.DatabaseConnectorLITE": [[5, 2, 1, "", "_get_existing_rows"], [5, 2, 1, "", "_get_pull_experiment_query"], [5, 3, 1, "", "_prepared_statement_placeholder"], [5, 2, 1, "", "_pull_open_experiment"], [5, 2, 1, "", "_table_exists"], [5, 2, 1, "", "_table_has_correct_structure"], [5, 2, 1, "", "_test_connection"], [5, 3, 1, "", "_write_to_database_separator"], [5, 2, 1, "", "connect"], [5, 2, 1, "", "get_autoincrement"], [5, 2, 1, "", "get_structure_from_table"], [5, 2, 1, "", "random_order_string"]], "py_experimenter.database_connector_mysql": [[6, 1, 1, "", "DatabaseConnectorMYSQL"]], "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL": [[6, 2, 1, "", "_create_database_if_not_existing"], [6, 2, 1, "", "_get_database_credentials"], [6, 2, 1, "", "_get_existing_rows"], [6, 2, 1, "", "_get_pull_experiment_query"], [6, 3, 1, "", "_prepared_statement_placeholder"], [6, 2, 1, "", "_pull_open_experiment"], [6, 2, 1, "", "_start_transaction"], [6, 2, 1, "", "_table_exists"], [6, 2, 1, "", "_table_has_correct_structure"], [6, 2, 1, "", "_test_connection"], [6, 2, 1, "", "close_connection"], [6, 2, 1, "", "close_ssh_tunnel"], [6, 2, 1, "", "connect"], [6, 2, 1, "", "get_autoincrement"], [6, 2, 1, "", "get_ssh_tunnel"], [6, 2, 1, "", "get_structure_from_table"], [6, 2, 1, "", "random_order_string"], [6, 2, 1, "", "start_ssh_tunnel"]], "py_experimenter.exceptions": [[7, 4, 1, "", "ConfigError"], [7, 4, 1, "", "CreatingTableError"], [7, 4, 1, "", "DatabaseConnectionError"], [7, 4, 1, "", "DatabaseCreationError"], [7, 4, 1, "", "DatabaseError"], [7, 4, 1, "", "DatabaseQueryError"], [7, 4, 1, "", "EmptyFillDatabaseCallError"], [7, 4, 1, "", "InvalidColumnError"], [7, 4, 1, "", "InvalidConfigError"], [7, 4, 1, "", "InvalidLogFieldError"], [7, 4, 1, "", "InvalidLogtableError"], [7, 4, 1, "", "InvalidResultFieldError"], [7, 4, 1, "", "InvalidValuesInConfiguration"], [7, 4, 1, "", "MissingLogTableError"], [7, 4, 1, "", "NoConfigFileError"], [7, 4, 1, "", "NoExperimentsLeftException"], [7, 4, 1, "", "NoPausedExperimentsException"], [7, 4, 1, "", "ParameterCombinationError"], [7, 4, 1, "", "PyExperimenterError"], [7, 4, 1, "", "SshTunnelError"], [7, 4, 1, "", "TableHasWrongStructureError"]], "py_experimenter.experiment_status": [[8, 1, 1, "", "ExperimentStatus"]], "py_experimenter.experiment_status.ExperimentStatus": [[8, 3, 1, "", "ALL"], [8, 3, 1, "", "CREATED"], [8, 3, 1, "", "DONE"], [8, 3, 1, "", "ERROR"], [8, 3, 1, "", "PAUSED"], [8, 3, 1, "", "RUNNING"]], "py_experimenter.experimenter": [[9, 1, 1, "", "PyExperimenter"]], "py_experimenter.experimenter.PyExperimenter": [[9, 2, 1, "", "_delete_codecarbon_config"], [9, 2, 1, "", "_execute_experiment"], [9, 2, 1, "", "_execution_wrapper"], [9, 2, 1, "", "_worker"], [9, 2, 1, "", "_write_codecarbon_config"], [9, 2, 1, "", "close_ssh"], [9, 2, 1, "", "delete_table"], [9, 2, 1, "", "execute"], [9, 2, 1, "", "fill_table_from_combination"], [9, 2, 1, "", "fill_table_from_config"], [9, 2, 1, "", "fill_table_with_rows"], [9, 2, 1, "", "get_codecarbon_table"], [9, 2, 1, "", "get_logtable"], [9, 2, 1, "", "get_table"], [9, 2, 1, "", "reset_experiments"], [9, 2, 1, "", "unpause_experiment"]], "py_experimenter.result_processor": [[11, 1, 1, "", "ResultProcessor"]], "py_experimenter.result_processor.ResultProcessor": [[11, 2, 1, "", "_add_timestamps_to_results"], [11, 2, 1, "", "_change_status"], [11, 2, 1, "", "_set_machine"], [11, 2, 1, "", "_set_name"], [11, 2, 1, "", "_valid_logtable_logs"], [11, 2, 1, "", "_valid_result_fields"], [11, 2, 1, "", "_write_emissions"], [11, 2, 1, "", "_write_error"], [11, 2, 1, "", "process_logs"], [11, 2, 1, "", "process_results"]], "py_experimenter.utils": [[12, 5, 1, "", "combine_fill_table_parameters"], [12, 5, 1, "", "extract_codecarbon_columns"], [12, 5, 1, "", "get_timestamp_representation"], [12, 5, 1, "", "load_credential_config"], [12, 5, 1, "", "write_codecarbon_config"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"]}, "titleterms": {"usag": [0, 16, 17, 32], "3rd": 0, "parti": 0, "depend": 0, "poetri": 0, "author": 1, "core": 1, "develop": [1, 21], "team": 1, "contribut": [1, 21], "api": 2, "refer": 2, "py_experiment": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "config": 3, "modul": [3, 4, 5, 6, 7, 8, 9, 11, 12], "content": [3, 4, 5, 6, 7, 8, 9, 11, 12], "class": [3, 4, 5, 6, 8, 9, 11], "database_connector": 4, "database_connector_lit": 5, "database_connector_mysql": 6, "except": 7, "experiment_statu": 8, "experiment": 9, "submodul": 10, "result_processor": 11, "util": 12, "function": [12, 15, 16, 17, 18, 31], "changelog": 13, "v1": 13, "4": 13, "2": 13, "2024": 13, "featur": 13, "fix": 13, "1": 13, "11": 13, "03": 13, "0": 13, "20": 13, "02": 13, "3": 13, "23": 13, "01": 13, "24": 13, "07": 13, "2023": 13, "exampl": [13, 15, 16, 17, 18, 19], "06": 13, "chang": 13, "21": 13, "04": 13, "test": [13, 21, 26], "2022": 13, "09": 13, "v0": 13, "6": 13, "5": 13, "17": 13, "2021": 13, "10": 13, "14": 13, "cite": 14, "pyexperiment": [14, 15, 16, 17, 22, 29], "citat": 14, "string": 14, "bibtex": 14, "condit": 15, "paramet": 15, "grid": 15, "experi": [15, 16, 17, 18, 28, 29, 30, 31], "configur": [15, 16, 17, 18, 29, 30], "file": [15, 16, 17, 18, 27, 29, 30], "defin": [15, 16, 17, 18], "execut": [15, 16, 17, 18, 28, 29, 30], "initi": [15, 16], "fill": [15, 16, 29], "tabl": [15, 16, 29], "codecarbon": [15, 16, 17, 18, 29, 30], "gener": 16, "restart": 16, "fail": 16, "result": [16, 17, 29], "print": 16, "latex": 16, "aggreg": 16, "logtabl": [17, 30, 31], "run": 17, "check": 17, "paus": [18, 29], "continu": 18, "showcas": 18, "resum": 18, "entri": 18, "need": 20, "help": 20, "how": 21, "setup": [21, 28], "workflow": [21, 28], "extend": 21, "unit": 21, "updat": 21, "document": [21, 22], "creat": [21, 24, 29], "pull": 21, "request": 21, "welcom": 22, "": 22, "acknowledg": 22, "instal": 23, "an": 24, "issu": 24, "licens": 25, "releas": 26, "version": 26, "prepar": 26, "pypi": 26, "databas": [27, 28, 29, 30], "credenti": 27, "distribut": 28, "handl": 28, "from": 29, "With": 29, "specif": 29, "row": 29, "reset": 29, "obtain": 29, "unpaus": 29, "close": 29, "ssh": 29, "tunnel": 29, "inform": 30, "keyfield": 30, "resultfield": [30, 31], "custom": 30, "field": 30, "push": 31, "data": 31, "To": 31}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx": 58}, "alltitles": {"Usage of 3rd Party Dependencies": [[0, "usage-of-3rd-party-dependencies"]], "Poetry": [[0, "poetry"]], "Authors": [[1, "authors"]], "Core Development Team": [[1, "core-development-team"]], "Contributions": [[1, "contributions"]], "API Reference": [[2, "api-reference"]], "py_experimenter.config": [[3, "module-py_experimenter.config"]], "Module Contents": [[3, "module-contents"], [4, "module-contents"], [5, "module-contents"], [6, "module-contents"], [7, "module-contents"], [8, "module-contents"], [9, "module-contents"], [11, "module-contents"], [12, "module-contents"]], "Classes": [[3, "classes"], [4, "classes"], [5, "classes"], [6, "classes"], [8, "classes"], [9, "classes"], [11, "classes"]], "py_experimenter.database_connector": [[4, "module-py_experimenter.database_connector"]], "py_experimenter.database_connector_lite": [[5, "module-py_experimenter.database_connector_lite"]], "py_experimenter.database_connector_mysql": [[6, "module-py_experimenter.database_connector_mysql"]], "py_experimenter.exceptions": [[7, "module-py_experimenter.exceptions"]], "py_experimenter.experiment_status": [[8, "module-py_experimenter.experiment_status"]], "py_experimenter.experimenter": [[9, "module-py_experimenter.experimenter"]], "py_experimenter": [[10, "module-py_experimenter"]], "Submodules": [[10, "submodules"]], "py_experimenter.result_processor": [[11, "module-py_experimenter.result_processor"]], "py_experimenter.utils": [[12, "module-py_experimenter.utils"]], "Functions": [[12, "functions"]], "Changelog": [[13, "changelog"]], "v1.4.2 (??.??.2024)": [[13, "v1-4-2-2024"]], "Feature": [[13, "feature"], [13, "id1"], [13, "id3"], [13, "id5"], [13, "id7"], [13, "id9"], [13, "id12"], [13, "id13"], [13, "id16"], [13, "id20"]], "Fix": [[13, "fix"], [13, "id2"], [13, "id4"], [13, "id6"], [13, "id8"], [13, "id11"], [13, "id15"], [13, "id18"], [13, "id22"]], "v1.4.1 (11.03.2024)": [[13, "v1-4-1-11-03-2024"]], "v1.4.0 (20.02.2024)": [[13, "v1-4-0-20-02-2024"]], "v1.3.2 (23.01.2024)": [[13, "v1-3-2-23-01-2024"]], "v1.3.1 (24.07.2023)": [[13, "v1-3-1-24-07-2023"]], "Examples": [[13, "examples"], [13, "id10"], [13, "id14"], [13, "id17"], [13, "id21"], [19, "examples"]], "v1.3.0 (23.06.2023)": [[13, "v1-3-0-23-06-2023"]], "Changed": [[13, "changed"]], "v1.2.1 (21/04/2023)": [[13, "v1-2-1-21-04-2023"]], "v1.2.0 (04/04/2023)": [[13, "v1-2-0-04-04-2023"]], "Tests": [[13, "tests"], [13, "id19"], [13, "id23"]], "v1.1.0 (21/11/2022)": [[13, "v1-1-0-21-11-2022"]], "v1.0.0 (04/09/2022)": [[13, "v1-0-0-04-09-2022"]], "v0.0.6 (01/03/2022)": [[13, "v0-0-6-01-03-2022"]], "v0.0.5 (17/01/2022)": [[13, "v0-0-5-17-01-2022"]], "v0.0.4 (02/11/2021)": [[13, "v0-0-4-02-11-2021"]], "v0.0.3 (20/10/2021)": [[13, "v0-0-3-20-10-2021"]], "v0.0.2 (20/10/2021)": [[13, "v0-0-2-20-10-2021"]], "v0.0.1 (14/10/2021)": [[13, "v0-0-1-14-10-2021"]], "Cite PyExperimenter": [[14, "cite-pyexperimenter"]], "Citation String": [[14, "citation-string"]], "BibTex": [[14, "bibtex"]], "Example: Conditional Parameter Grids": [[15, "Example:-Conditional-Parameter-Grids"]], "Experiment Configuration File": [[15, "Experiment-Configuration-File"], [16, "Experiment-Configuration-File"], [17, "Experiment-Configuration-File"], [18, "Experiment-Configuration-File"], [30, "experiment-configuration-file"]], "Defining the execution function": [[15, "Defining-the-execution-function"], [16, "Defining-the-execution-function"], [17, "Defining-the-execution-function"]], "Executing PyExperimenter": [[15, "Executing-PyExperimenter"], [16, "Executing-PyExperimenter"], [17, "Executing-PyExperimenter"], [29, "executing-pyexperimenter"]], "Initialize PyExperimenter": [[15, "Initialize-PyExperimenter"], [16, "Initialize-PyExperimenter"]], "Fill Table": [[15, "Fill-Table"], [16, "Fill-Table"]], "Execute PyExperimenter": [[15, "Execute-PyExperimenter"], [16, "Execute-PyExperimenter"]], "CodeCarbon": [[15, "CodeCarbon"], [16, "CodeCarbon"], [17, "CodeCarbon"], [29, "codecarbon"], [30, "codecarbon"]], "Example: General Usage": [[16, "Example:-General-Usage"]], "Restart Failed Experiments": [[16, "Restart-Failed-Experiments"]], "Generating Result Table": [[16, "Generating-Result-Table"]], "Printing LaTex Table": [[16, "Printing-LaTex-Table"]], "Aggregating CodeCarbon Results": [[16, "Aggregating-CodeCarbon-Results"]], "Printing CodeCarbon Results as LaTex Table": [[16, "Printing-CodeCarbon-Results-as-LaTex-Table"]], "Example: Usage of Logtables": [[17, "Example:-Usage-of-Logtables"]], "Run Experiments": [[17, "Run-Experiments"]], "Check Results": [[17, "Check-Results"]], "Example: Pause and Continue": [[18, "Example:-Pause-and-Continue"]], "Defining Pausing Execution Function": [[18, "Defining-Pausing-Execution-Function"]], "Showcase Paused Execution": [[18, "Showcase-Paused-Execution"]], "Define resuming execution function": [[18, "Define-resuming-execution-function"]], "CodeCarbon Entries": [[18, "CodeCarbon-Entries"]], "Need Help?": [[20, "need-help"]], "How to Contribute": [[21, "how-to-contribute"]], "Setup Development Workflow": [[21, "setup-development-workflow"]], "Extend Unit Tests": [[21, "extend-unit-tests"]], "Update Documentation": [[21, "update-documentation"]], "Create Pull Request": [[21, "create-pull-request"]], "Welcome to PyExperimenter\u2019s documentation!": [[22, "welcome-to-pyexperimenter-s-documentation"]], "Acknowledgements": [[22, "acknowledgements"]], "Installation": [[23, "installation"]], "Creating an Issue": [[24, "creating-an-issue"]], "License": [[25, "license"]], "Release Version": [[26, "release-version"]], "Prepare Test PyPi / PyPi": [[26, "prepare-test-pypi-pypi"]], "Release Version to Test PyPi": [[26, "release-version-to-test-pypi"]], "Release Version to PyPi": [[26, "release-version-to-pypi"]], "Database Credential File": [[27, "database-credential-file"]], "Distributed Execution": [[28, "distributed-execution"]], "Database Setup": [[28, "database-setup"]], "Workflow": [[28, "workflow"]], "Database Handling": [[28, "database-handling"]], "Experiment Execution": [[28, "experiment-execution"]], "Creating a PyExperimenter": [[29, "creating-a-pyexperimenter"]], "Fill Database Table": [[29, "fill-database-table"]], "Fill Table From Experiment Configuration File": [[29, "fill-table-from-experiment-configuration-file"]], "Fill Table With Specific Rows": [[29, "fill-table-with-specific-rows"]], "Execute Experiments": [[29, "execute-experiments"]], "Reset Experiments": [[29, "reset-experiments"]], "Obtain Results": [[29, "obtain-results"]], "Pausing and Unpausing Experiments": [[29, "pausing-and-unpausing-experiments"]], "Close SSH Tunnel": [[29, "close-ssh-tunnel"]], "Database Information": [[30, "database-information"]], "Keyfields": [[30, "keyfields"]], "Resultfields": [[30, "resultfields"]], "Logtables": [[30, "logtables"]], "Execution Information": [[30, "execution-information"]], "Custom Fields": [[30, "custom-fields"]], "Experiment Function": [[31, "experiment-function"]], "Push Data To Resultfields": [[31, "push-data-to-resultfields"]], "Push Data To Logtables": [[31, "push-data-to-logtables"]], "Usage": [[32, "usage"]]}, "indexentries": {"cfg (class in py_experimenter.config)": [[3, "py_experimenter.config.Cfg"]], "codecarboncfg (class in py_experimenter.config)": [[3, "py_experimenter.config.CodeCarbonCfg"]], "customcfg (class in py_experimenter.config)": [[3, "py_experimenter.config.CustomCfg"]], "databasecfg (class in py_experimenter.config)": [[3, "py_experimenter.config.DatabaseCfg"]], "keyfield (class in py_experimenter.config)": [[3, "py_experimenter.config.Keyfield"]], "pyexperimentercfg (class in py_experimenter.config)": [[3, "py_experimenter.config.PyExperimenterCfg"]], "_extract_keyfields() (py_experimenter.config.databasecfg static method)": [[3, "py_experimenter.config.DatabaseCfg._extract_keyfields"]], "_extract_logtables() (py_experimenter.config.databasecfg static method)": [[3, "py_experimenter.config.DatabaseCfg._extract_logtables"]], "_extract_resultfields() (py_experimenter.config.databasecfg static method)": [[3, "py_experimenter.config.DatabaseCfg._extract_resultfields"]], "_extract_value_range() (py_experimenter.config.databasecfg static method)": [[3, "py_experimenter.config.DatabaseCfg._extract_value_range"]], "dtype (py_experimenter.config.keyfield attribute)": [[3, "py_experimenter.config.Keyfield.dtype"]], "extract_config() (py_experimenter.config.cfg class method)": [[3, "py_experimenter.config.Cfg.extract_config"]], "extract_config() (py_experimenter.config.codecarboncfg static method)": [[3, "py_experimenter.config.CodeCarbonCfg.extract_config"]], "extract_config() (py_experimenter.config.customcfg static method)": [[3, "py_experimenter.config.CustomCfg.extract_config"]], "extract_config() (py_experimenter.config.databasecfg static method)": [[3, "py_experimenter.config.DatabaseCfg.extract_config"]], "extract_config() (py_experimenter.config.pyexperimentercfg static method)": [[3, "py_experimenter.config.PyExperimenterCfg.extract_config"]], "get_experiment_configuration() (py_experimenter.config.databasecfg method)": [[3, "py_experimenter.config.DatabaseCfg.get_experiment_configuration"]], "module": [[3, "module-py_experimenter.config"], [4, "module-py_experimenter.database_connector"], [5, "module-py_experimenter.database_connector_lite"], [6, "module-py_experimenter.database_connector_mysql"], [7, "module-py_experimenter.exceptions"], [8, "module-py_experimenter.experiment_status"], [9, "module-py_experimenter.experimenter"], [10, "module-py_experimenter"], [11, "module-py_experimenter.result_processor"], [12, "module-py_experimenter.utils"]], "name (py_experimenter.config.keyfield attribute)": [[3, "py_experimenter.config.Keyfield.name"]], "py_experimenter.config": [[3, "module-py_experimenter.config"]], "valid() (py_experimenter.config.cfg method)": [[3, "py_experimenter.config.Cfg.valid"]], "valid() (py_experimenter.config.codecarboncfg method)": [[3, "py_experimenter.config.CodeCarbonCfg.valid"]], "valid() (py_experimenter.config.customcfg method)": [[3, "py_experimenter.config.CustomCfg.valid"]], "valid() (py_experimenter.config.databasecfg method)": [[3, "py_experimenter.config.DatabaseCfg.valid"]], "valid() (py_experimenter.config.pyexperimentercfg method)": [[3, "py_experimenter.config.PyExperimenterCfg.valid"]], "values (py_experimenter.config.keyfield attribute)": [[3, "py_experimenter.config.Keyfield.values"]], "databaseconnector (class in py_experimenter.database_connector)": [[4, "py_experimenter.database_connector.DatabaseConnector"]], "_check_combination_in_existing_rows() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._check_combination_in_existing_rows"]], "_compute_columns() (py_experimenter.database_connector.databaseconnector static method)": [[4, "py_experimenter.database_connector.DatabaseConnector._compute_columns"]], "_create_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._create_table"]], "_delete_experiments_with_condition() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._delete_experiments_with_condition"]], "_exclude_fixed_columns() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._exclude_fixed_columns"]], "_get_create_table_query() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._get_create_table_query"]], "_get_existing_rows() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._get_existing_rows"]], "_get_experiments_with_condition() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._get_experiments_with_condition"]], "_get_pull_experiment_query() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._get_pull_experiment_query"]], "_pop_experiments_with_status() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._pop_experiments_with_status"]], "_prepare_update_query() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._prepare_update_query"]], "_pull_open_experiment() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._pull_open_experiment"]], "_select_open_experiments_from_db() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._select_open_experiments_from_db"]], "_table_exists() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._table_exists"]], "_table_has_correct_structure() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._table_has_correct_structure"]], "_test_connection() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._test_connection"]], "_write_to_database() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector._write_to_database"]], "close_connection() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.close_connection"]], "commit() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.commit"]], "connect() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.connect"]], "create_table_if_not_existing() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.create_table_if_not_existing"]], "cursor() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.cursor"]], "delete_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.delete_table"]], "execute() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.execute"]], "execute_queries() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.execute_queries"]], "fetchall() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.fetchall"]], "fill_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.fill_table"]], "get_autoincrement() (py_experimenter.database_connector.databaseconnector static method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_autoincrement"]], "get_codecarbon_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_codecarbon_table"]], "get_experiment_configuration() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_experiment_configuration"]], "get_logtable() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_logtable"]], "get_structure_from_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_structure_from_table"]], "get_table() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.get_table"]], "prepare_write_query() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.prepare_write_query"]], "pull_paused_experiment() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.pull_paused_experiment"]], "py_experimenter.database_connector": [[4, "module-py_experimenter.database_connector"]], "random_order_string() (py_experimenter.database_connector.databaseconnector static method)": [[4, "py_experimenter.database_connector.DatabaseConnector.random_order_string"]], "reset_experiments() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.reset_experiments"]], "update_database() (py_experimenter.database_connector.databaseconnector method)": [[4, "py_experimenter.database_connector.DatabaseConnector.update_database"]], "databaseconnectorlite (class in py_experimenter.database_connector_lite)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE"]], "_get_existing_rows() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._get_existing_rows"]], "_get_pull_experiment_query() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._get_pull_experiment_query"]], "_prepared_statement_placeholder (py_experimenter.database_connector_lite.databaseconnectorlite attribute)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._prepared_statement_placeholder"]], "_pull_open_experiment() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._pull_open_experiment"]], "_table_exists() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._table_exists"]], "_table_has_correct_structure() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._table_has_correct_structure"]], "_test_connection() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._test_connection"]], "_write_to_database_separator (py_experimenter.database_connector_lite.databaseconnectorlite attribute)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE._write_to_database_separator"]], "connect() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE.connect"]], "get_autoincrement() (py_experimenter.database_connector_lite.databaseconnectorlite static method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE.get_autoincrement"]], "get_structure_from_table() (py_experimenter.database_connector_lite.databaseconnectorlite method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE.get_structure_from_table"]], "py_experimenter.database_connector_lite": [[5, "module-py_experimenter.database_connector_lite"]], "random_order_string() (py_experimenter.database_connector_lite.databaseconnectorlite static method)": [[5, "py_experimenter.database_connector_lite.DatabaseConnectorLITE.random_order_string"]], "databaseconnectormysql (class in py_experimenter.database_connector_mysql)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL"]], "_create_database_if_not_existing() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._create_database_if_not_existing"]], "_get_database_credentials() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._get_database_credentials"]], "_get_existing_rows() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._get_existing_rows"]], "_get_pull_experiment_query() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._get_pull_experiment_query"]], "_prepared_statement_placeholder (py_experimenter.database_connector_mysql.databaseconnectormysql attribute)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._prepared_statement_placeholder"]], "_pull_open_experiment() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._pull_open_experiment"]], "_start_transaction() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._start_transaction"]], "_table_exists() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._table_exists"]], "_table_has_correct_structure() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._table_has_correct_structure"]], "_test_connection() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL._test_connection"]], "close_connection() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.close_connection"]], "close_ssh_tunnel() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.close_ssh_tunnel"]], "connect() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.connect"]], "get_autoincrement() (py_experimenter.database_connector_mysql.databaseconnectormysql static method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.get_autoincrement"]], "get_ssh_tunnel() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.get_ssh_tunnel"]], "get_structure_from_table() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.get_structure_from_table"]], "py_experimenter.database_connector_mysql": [[6, "module-py_experimenter.database_connector_mysql"]], "random_order_string() (py_experimenter.database_connector_mysql.databaseconnectormysql static method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.random_order_string"]], "start_ssh_tunnel() (py_experimenter.database_connector_mysql.databaseconnectormysql method)": [[6, "py_experimenter.database_connector_mysql.DatabaseConnectorMYSQL.start_ssh_tunnel"]], "configerror": [[7, "py_experimenter.exceptions.ConfigError"]], "creatingtableerror": [[7, "py_experimenter.exceptions.CreatingTableError"]], "databaseconnectionerror": [[7, "py_experimenter.exceptions.DatabaseConnectionError"]], "databasecreationerror": [[7, "py_experimenter.exceptions.DatabaseCreationError"]], "databaseerror": [[7, "py_experimenter.exceptions.DatabaseError"]], "databasequeryerror": [[7, "py_experimenter.exceptions.DatabaseQueryError"]], "emptyfilldatabasecallerror": [[7, "py_experimenter.exceptions.EmptyFillDatabaseCallError"]], "invalidcolumnerror": [[7, "py_experimenter.exceptions.InvalidColumnError"]], "invalidconfigerror": [[7, "py_experimenter.exceptions.InvalidConfigError"]], "invalidlogfielderror": [[7, "py_experimenter.exceptions.InvalidLogFieldError"]], "invalidlogtableerror": [[7, "py_experimenter.exceptions.InvalidLogtableError"]], "invalidresultfielderror": [[7, "py_experimenter.exceptions.InvalidResultFieldError"]], "invalidvaluesinconfiguration": [[7, "py_experimenter.exceptions.InvalidValuesInConfiguration"]], "missinglogtableerror": [[7, "py_experimenter.exceptions.MissingLogTableError"]], "noconfigfileerror": [[7, "py_experimenter.exceptions.NoConfigFileError"]], "noexperimentsleftexception": [[7, "py_experimenter.exceptions.NoExperimentsLeftException"]], "nopausedexperimentsexception": [[7, "py_experimenter.exceptions.NoPausedExperimentsException"]], "parametercombinationerror": [[7, "py_experimenter.exceptions.ParameterCombinationError"]], "pyexperimentererror": [[7, "py_experimenter.exceptions.PyExperimenterError"]], "sshtunnelerror": [[7, "py_experimenter.exceptions.SshTunnelError"]], "tablehaswrongstructureerror": [[7, "py_experimenter.exceptions.TableHasWrongStructureError"]], "py_experimenter.exceptions": [[7, "module-py_experimenter.exceptions"]], "all (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.ALL"]], "created (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.CREATED"]], "done (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.DONE"]], "error (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.ERROR"]], "experimentstatus (class in py_experimenter.experiment_status)": [[8, "py_experimenter.experiment_status.ExperimentStatus"]], "paused (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.PAUSED"]], "running (py_experimenter.experiment_status.experimentstatus attribute)": [[8, "py_experimenter.experiment_status.ExperimentStatus.RUNNING"]], "py_experimenter.experiment_status": [[8, "module-py_experimenter.experiment_status"]], "pyexperimenter (class in py_experimenter.experimenter)": [[9, "py_experimenter.experimenter.PyExperimenter"]], "_delete_codecarbon_config() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter._delete_codecarbon_config"]], "_execute_experiment() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter._execute_experiment"]], "_execution_wrapper() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter._execution_wrapper"]], "_worker() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter._worker"]], "_write_codecarbon_config() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter._write_codecarbon_config"]], "close_ssh() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.close_ssh"]], "delete_table() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.delete_table"]], "execute() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.execute"]], "fill_table_from_combination() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.fill_table_from_combination"]], "fill_table_from_config() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.fill_table_from_config"]], "fill_table_with_rows() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.fill_table_with_rows"]], "get_codecarbon_table() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.get_codecarbon_table"]], "get_logtable() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.get_logtable"]], "get_table() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.get_table"]], "py_experimenter.experimenter": [[9, "module-py_experimenter.experimenter"]], "reset_experiments() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.reset_experiments"]], "unpause_experiment() (py_experimenter.experimenter.pyexperimenter method)": [[9, "py_experimenter.experimenter.PyExperimenter.unpause_experiment"]], "py_experimenter": [[10, "module-py_experimenter"]], "resultprocessor (class in py_experimenter.result_processor)": [[11, "py_experimenter.result_processor.ResultProcessor"]], "_add_timestamps_to_results() (py_experimenter.result_processor.resultprocessor static method)": [[11, "py_experimenter.result_processor.ResultProcessor._add_timestamps_to_results"]], "_change_status() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._change_status"]], "_set_machine() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._set_machine"]], "_set_name() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._set_name"]], "_valid_logtable_logs() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._valid_logtable_logs"]], "_valid_result_fields() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._valid_result_fields"]], "_write_emissions() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._write_emissions"]], "_write_error() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor._write_error"]], "process_logs() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor.process_logs"]], "process_results() (py_experimenter.result_processor.resultprocessor method)": [[11, "py_experimenter.result_processor.ResultProcessor.process_results"]], "py_experimenter.result_processor": [[11, "module-py_experimenter.result_processor"]], "combine_fill_table_parameters() (in module py_experimenter.utils)": [[12, "py_experimenter.utils.combine_fill_table_parameters"]], "extract_codecarbon_columns() (in module py_experimenter.utils)": [[12, "py_experimenter.utils.extract_codecarbon_columns"]], "get_timestamp_representation() (in module py_experimenter.utils)": [[12, "py_experimenter.utils.get_timestamp_representation"]], "load_credential_config() (in module py_experimenter.utils)": [[12, "py_experimenter.utils.load_credential_config"]], "py_experimenter.utils": [[12, "module-py_experimenter.utils"]], "write_codecarbon_config() (in module py_experimenter.utils)": [[12, "py_experimenter.utils.write_codecarbon_config"]]}})
          \ No newline at end of file
          diff --git a/usage/database_credential_file.html b/usage/database_credential_file.html
          index f3ad2837..fc4d69af 100644
          --- a/usage/database_credential_file.html
          +++ b/usage/database_credential_file.html
          @@ -118,7 +118,7 @@
           

          However, for security reasons, databases might only be accessible from a specific IP address. In these cases, one can use an ssh jumphost. This means that PyExperimenter will first connect to the ssh server -that has access to the database and then connect to the database server from there. This is done by adding an additional Ssh section to the database credential file. +that has access to the database and then connect to the database server from there. This is done by adding an additional Ssh section to the database credential file, and can be activated either by a PyExperimenter keyword argument or in the experimenter configuration file. The following example shows how to connect to a database server using an SSH server with the address ssh_hostname and the port optional_ssh_port.

          CREDENTIALS:
             Database:
          diff --git a/usage/experiment_configuration_file.html b/usage/experiment_configuration_file.html
          index 18a56312..747b5259 100644
          --- a/usage/experiment_configuration_file.html
          +++ b/usage/experiment_configuration_file.html
          @@ -123,6 +123,7 @@
             Database:
               provider: sqlite
               database: py_experimenter
          +    use_ssh_tunnel: False
               table:
                 name: example_general_usage
                 keyfields:
          @@ -177,6 +178,7 @@ 

          Database Information
        • provider: The provider of the database connection. Currently, sqlite and mysql are supported. In the case of mysql an additional database credential file has to be created.

        • database: The name of the database to create or connect to.

        • +
        • use_ssh_tunnel: Flag to decide if the database is connected via ssh as defined in the database credential file. This is ignored if sqlite is chosen as provider. Optional Parameter, default is False.

        • table: Defines the structure and predefined values for the experiment table.