PythonExtensionsCollection 0.14.0__tar.gz → 0.15.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PKG-INFO +53 -17
  2. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/Comparison/CComparison.py +1 -1
  3. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/Comparison/__init__.py +1 -1
  4. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/File/CFile.py +1 -1
  5. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/File/__init__.py +1 -1
  6. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/Folder/CFolder.py +1 -1
  7. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/Folder/__init__.py +1 -1
  8. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/PythonExtensionsCollection.pdf +0 -0
  9. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/String/CString.py +20 -9
  10. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/String/__init__.py +1 -1
  11. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/Utils/CUtils.py +124 -3
  12. PythonExtensionsCollection-0.15.1/PythonExtensionsCollection/Utils/__init__.py +13 -0
  13. PythonExtensionsCollection-0.15.1/PythonExtensionsCollection/__init__.py +13 -0
  14. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection/version.py +3 -3
  15. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection.egg-info/PKG-INFO +53 -17
  16. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/README.rst +40 -11
  17. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/setup.py +1 -1
  18. PythonExtensionsCollection-0.14.0/PythonExtensionsCollection/Utils/__init__.py +0 -13
  19. PythonExtensionsCollection-0.14.0/PythonExtensionsCollection/__init__.py +0 -13
  20. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/LICENSE +0 -0
  21. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection.egg-info/SOURCES.txt +0 -0
  22. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection.egg-info/dependency_links.txt +0 -0
  23. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection.egg-info/requires.txt +0 -0
  24. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/PythonExtensionsCollection.egg-info/top_level.txt +0 -0
  25. {PythonExtensionsCollection-0.14.0 → PythonExtensionsCollection-0.15.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PythonExtensionsCollection
3
- Version: 0.14.0
3
+ Version: 0.15.1
4
4
  Summary: Additional Python functions
5
5
  Home-page: https://github.com/test-fullautomation/python-extensions-collection
6
6
  Author: Holger Queckenstedt
@@ -20,9 +20,8 @@ License-File: LICENSE
20
20
  Package Description
21
21
  ===================
22
22
 
23
- The **PythonExtensionsCollection** package extends the functionality of
24
- Python by some useful functions that are not available in Python
25
- immediately.
23
+ The **PythonExtensionsCollection** extends the functionality of Python
24
+ by some useful functions that are not available in Python immediately.
26
25
 
27
26
  How to install
28
27
  --------------
@@ -41,22 +40,59 @@ ways.
41
40
 
42
41
  2. Installation via GitHub (recommended for developers)
43
42
 
44
- Clone the **python-extensions-collection** repository to your
45
- machine.
43
+ - Clone the **python-extensions-collection** repository to your
44
+ machine.
46
45
 
47
- ``` {.}
48
- git clone https://github.com/test-fullautomation/python-extensions-collection.git
49
- ```
46
+ ``` {.}
47
+ git clone https://github.com/test-fullautomation/python-extensions-collection.git
48
+ ```
50
49
 
51
- [PythonExtensionsCollection in
52
- GitHub](https://github.com/test-fullautomation/python-extensions-collection)
50
+ [PythonExtensionsCollection in
51
+ GitHub](https://github.com/test-fullautomation/python-extensions-collection)
53
52
 
54
- Use the following command to install the
55
- **PythonExtensionsCollection**:
53
+ - Install dependencies
56
54
 
57
- ``` {.}
58
- setup.py install
59
- ```
55
+ **PythonExtensionsCollection** requires some additional Python
56
+ libraries. Before you install the cloned repository sources you
57
+ have to install the dependencies manually. The names of all
58
+ related packages you can find in the file `requirements.txt` in
59
+ the repository root folder. Use pip to install them:
60
+
61
+ ``` {.}
62
+ pip install -r ./requirements.txt
63
+ ```
64
+
65
+ Additionally install **LaTeX** (recommended: TeX Live). This is
66
+ used to render the documentation.
67
+
68
+ - Configure dependencies
69
+
70
+ The installation of **PythonExtensionsCollection** includes to
71
+ generate the documentation in PDF format. This is done by an
72
+ application called **GenPackageDoc**, that is part of the
73
+ installation dependencies (see `requirements.txt`).
74
+
75
+ **GenPackageDoc** uses **LaTeX** to generate the documentation
76
+ in PDF format. Therefore **GenPackageDoc** needs to know where
77
+ to find **LaTeX**. This is defined in the **GenPackageDoc**
78
+ configuration file
79
+
80
+ ``` {.}
81
+ packagedoc\packagedoc_config.json
82
+ ```
83
+
84
+ Before you start the installation you have to introduce the
85
+ following environment variable, that is used in
86
+ `packagedoc_config.json`:
87
+
88
+ - `GENDOC_LATEXPATH` : path to `pdflatex` executable
89
+
90
+ - Use the following command to install the
91
+ **PythonExtensionsCollection**:
92
+
93
+ ``` {.}
94
+ setup.py install
95
+ ```
60
96
 
61
97
  Package Documentation
62
98
  ---------------------
@@ -91,7 +127,7 @@ Contributors
91
127
  License
92
128
  -------
93
129
 
94
- Copyright 2020-2022 Robert Bosch GmbH
130
+ Copyright 2020-2023 Robert Bosch GmbH
95
131
 
96
132
  Licensed under the Apache License, Version 2.0 (the \"License\"); you
97
133
  may not use this file except in compliance with the License. You may
@@ -1,6 +1,6 @@
1
1
  # **************************************************************************************************************
2
2
  #
3
- # Copyright 2020-2022 Robert Bosch GmbH
3
+ # Copyright 2020-2023 Robert Bosch GmbH
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2020-2022 Robert Bosch GmbH
1
+ # Copyright 2020-2023 Robert Bosch GmbH
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  # **************************************************************************************************************
2
2
  #
3
- # Copyright 2020-2022 Robert Bosch GmbH
3
+ # Copyright 2020-2023 Robert Bosch GmbH
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2020-2022 Robert Bosch GmbH
1
+ # Copyright 2020-2023 Robert Bosch GmbH
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  # **************************************************************************************************************
2
2
  #
3
- # Copyright 2020-2022 Robert Bosch GmbH
3
+ # Copyright 2020-2023 Robert Bosch GmbH
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- # Copyright 2020-2022 Robert Bosch GmbH
1
+ # Copyright 2020-2023 Robert Bosch GmbH
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  # **************************************************************************************************************
2
2
  #
3
- # Copyright 2020-2022 Robert Bosch GmbH
3
+ # Copyright 2020-2023 Robert Bosch GmbH
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -20,12 +20,12 @@
20
20
  #
21
21
  # XC-CT/ECA3-Queckenstedt
22
22
  #
23
- # 14.11.2022
23
+ # 19.10.2023
24
24
  #
25
25
  # **************************************************************************************************************
26
26
 
27
27
  # -- import standard Python modules
28
- import os, ntpath, re
28
+ import os, ntpath, platform, re
29
29
 
30
30
  # **************************************************************************************************************
31
31
 
@@ -47,7 +47,8 @@ Normalizes local paths, paths to local network resources and internet addresses
47
47
 
48
48
  / *Condition*: required / *Type*: str /
49
49
 
50
- The path to be normalized
50
+ The path to be normalized. Paths can start with environment variables. Accepted are notations for both Windows
51
+ (``%ENVVAR%``) and Linux (``${ENVVAR}``). Under Windows also the Linux notation will be resolved.
51
52
 
52
53
  * ``bWin``
53
54
 
@@ -94,10 +95,6 @@ Normalizes local paths, paths to local network resources and internet addresses
94
95
 
95
96
  if sPath is not None:
96
97
 
97
- # -- expand Windows environment variables
98
- if bExpandEnvVars is True:
99
- sPath = os.path.expandvars(sPath)
100
-
101
98
  # - remove leading and trailing horizontal space
102
99
  sPath = sPath.strip(" \t\r\n")
103
100
 
@@ -115,6 +112,20 @@ Normalizes local paths, paths to local network resources and internet addresses
115
112
  # - remove trailing slash or backslash (maybe at end of path to folder)
116
113
  sPath = sPath.rstrip("/\\")
117
114
 
115
+ # -- expand environment variables
116
+ if bExpandEnvVars is True:
117
+ sPattern_envvar = r"^\$\{(\w+?)\}" # check for Linux notation (shall be usable also under Windows)
118
+ regex_envvar = re.compile(sPattern_envvar)
119
+ sPlatformSystem = platform.system()
120
+ sPathModified = sPath
121
+ for sEnvVar in regex_envvar.findall(sPath):
122
+ sSearch = "${" + sEnvVar + "}"
123
+ if sPlatformSystem == "Windows":
124
+ sReplace = "%" + sEnvVar + "%"
125
+ sPathModified = sPathModified.replace(sSearch, sReplace)
126
+ # eof for sEnvVar in regex_envvar.findall(sPath):
127
+ sPath = os.path.expandvars(sPathModified)
128
+
118
129
  # --------------------------------------------------------------------------------------------------------------
119
130
  # consider internet addresses and local network resources
120
131
  # --------------------------------------------------------------------------------------------------------------
@@ -480,7 +491,7 @@ while walking through the file system.
480
491
 
481
492
  / *Condition*: required / *Type*: str /
482
493
 
483
- The input string that has to be investigated.
494
+ The input string that has to be investigated.
484
495
 
485
496
  * ``bCaseSensitive``
486
497
 
@@ -1,4 +1,4 @@
1
- # Copyright 2020-2022 Robert Bosch GmbH
1
+ # Copyright 2020-2023 Robert Bosch GmbH
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  # **************************************************************************************************************
2
2
  #
3
- # Copyright 2020-2022 Robert Bosch GmbH
3
+ # Copyright 2020-2023 Robert Bosch GmbH
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -20,13 +20,18 @@
20
20
  #
21
21
  # XC-CT/ECA3-Queckenstedt
22
22
  #
23
- # 29.03.2023
23
+ # 30.05.2023
24
24
  #
25
25
  # **************************************************************************************************************
26
26
 
27
27
  # -- import standard Python modules
28
+ import os, sys, subprocess
28
29
  from dotdict import dotdict
29
30
 
31
+ from PythonExtensionsCollection.String.CString import CString
32
+ from PythonExtensionsCollection.File.CFile import CFile
33
+
34
+
30
35
  # **************************************************************************************************************
31
36
  # wrapper
32
37
  # **************************************************************************************************************
@@ -288,7 +293,7 @@ The method ``TypePrint`` computes details about the input variable ``oData``.
288
293
  del self.listGlobalPrefixes[-1] # remove prefix count
289
294
  del self.listGlobalPrefixes[-1] # remove prefix name
290
295
 
291
- elif ( (type(oData) is dotdict) or (str(type(oData)) == "<class 'robot.utils.dotdict.DotDict'>") or (str(type(oData)) == "<class 'RobotFramework_TestsuitesManagement.Config.CConfig.dotdict'>") ):
296
+ elif ( (type(oData) is dotdict) or (str(type(oData)) == "<class 'robot.utils.dotdict.DotDict'>") ):
292
297
  nNrOfElements = len(oData)
293
298
  if nNrOfElements == 0:
294
299
  # -- indicate empty dot dictionary
@@ -325,5 +330,121 @@ The method ``TypePrint`` computes details about the input variable ``oData``.
325
330
 
326
331
  # eof class CTypePrint():
327
332
 
333
+
334
+ # --------------------------------------------------------------------------------------------------------------
335
+ # TM***
336
+
337
+ class CUtils(object):
338
+ """The class ``CUtils`` contains useful methods.
339
+ """
340
+
341
+ def GetInstalledPackages(sOutputFile=None):
342
+ """The method ``GetInstalledPackages`` computes a list of all installed Python packages.
343
+ The list is returned as list of tuples containing the name and the version of the package.
344
+
345
+ It is also possible to let the method dump the list to a text file.
346
+
347
+ **Arguments:**
348
+
349
+ * ``sOutputFile``
350
+
351
+ / *Condition*: optional / *Type*: string / *Default*: None /
352
+
353
+ Path and name of a file to dump the package list to.
354
+
355
+ **Returns:**
356
+
357
+ * ``listofTuplesPackages``
358
+
359
+ / *Type*: list /
360
+
361
+ List of tuples containing the name and the version of the package.
362
+
363
+ * ``bSuccess``
364
+
365
+ / *Type*: bool /
366
+
367
+ Indicates if the computation of the method was successful or not.
368
+
369
+ * ``sResult``
370
+
371
+ / *Type*: str /
372
+
373
+ The result of the computation of the method.
374
+ """
375
+
376
+ sMethod = "GetInstalledPackages"
377
+ bSuccess = None
378
+ sResult = "UNKNOWN"
379
+
380
+ listofTuplesPackages = []
381
+
382
+ sFreezeData = None
383
+ try:
384
+ sFreezeData = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze'], encoding="utf-8", text=True)
385
+ except Exception as reason:
386
+ bSuccess = None
387
+ sResult = str(reason)
388
+ sResult = CString.FormatResult(sMethod, bSuccess, sResult)
389
+ return listofTuplesPackages, bSuccess, sResult
390
+
391
+ if sFreezeData is None:
392
+ bSuccess = None
393
+ sResult = "sFreezeData is None"
394
+ sResult = CString.FormatResult(sMethod, bSuccess, sResult)
395
+ return listofTuplesPackages, bSuccess, sResult
396
+
397
+ sFreezeData = str(sFreezeData) # to make the content 'split()' save
398
+
399
+ for sPackage in sFreezeData.split():
400
+ sName = None
401
+ sVersion = None
402
+ listParts = sPackage.split('==')
403
+ if len(listParts) != 2:
404
+ sName = sPackage
405
+ sVersion = "UNKNOWN"
406
+ # but I really would not expect this
407
+ else:
408
+ sName = listParts[0]
409
+ sVersion = listParts[1]
410
+ listofTuplesPackages.append((sName, sVersion))
411
+ # eof for sPackage in sFreezeData.split():
412
+
413
+ nNrOfPackages = len(listofTuplesPackages)
414
+
415
+ if sOutputFile is not None:
416
+ sOutputFile = CString.NormalizePath(sOutputFile)
417
+ sParentDirectory = os.path.dirname(sOutputFile)
418
+ if not os.path.isdir(sParentDirectory):
419
+ bSuccess = False
420
+ sResult = f"The folder to store the output file does not exist: '{sParentDirectory}'"
421
+ return listofTuplesPackages, bSuccess, sResult
422
+
423
+ oFile = CFile(sOutputFile)
424
+ for tuplePackage in listofTuplesPackages:
425
+ sName = tuplePackage[0]
426
+ sVersion = tuplePackage[1]
427
+ sOut = sName.rjust(40) + " = " + sVersion
428
+ bSuccess, sResult = oFile.Write(sOut)
429
+ del oFile
430
+
431
+ # eof if sOutputFile is not None:
432
+
433
+ bSuccess = True
434
+ sResult = f"Identified {nNrOfPackages} packages."
435
+
436
+ return listofTuplesPackages, bSuccess, sResult
437
+
438
+ # eof def GetInstalledPackages(sOutputFile=None):
439
+
440
+ # --------------------------------------------------------------------------------------------------------------
441
+ #TM***
442
+
443
+ # - make the methods static
444
+
445
+ GetInstalledPackages = staticmethod(GetInstalledPackages)
446
+
447
+ # eof class CUtils(object):
448
+
328
449
  # **************************************************************************************************************
329
450
 
@@ -0,0 +1,13 @@
1
+ # Copyright 2020-2023 Robert Bosch GmbH
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
@@ -0,0 +1,13 @@
1
+ # Copyright 2020-2023 Robert Bosch GmbH
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
@@ -1,6 +1,6 @@
1
1
  # **************************************************************************************************************
2
2
  #
3
- # Copyright 2020-2022 Robert Bosch GmbH
3
+ # Copyright 2020-2023 Robert Bosch GmbH
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -18,6 +18,6 @@
18
18
  #
19
19
  # Version and date of PythonExtensionsCollection
20
20
  #
21
- VERSION = "0.14.0"
22
- VERSION_DATE = "05.05.2023"
21
+ VERSION = "0.15.1"
22
+ VERSION_DATE = "19.10.2023"
23
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PythonExtensionsCollection
3
- Version: 0.14.0
3
+ Version: 0.15.1
4
4
  Summary: Additional Python functions
5
5
  Home-page: https://github.com/test-fullautomation/python-extensions-collection
6
6
  Author: Holger Queckenstedt
@@ -20,9 +20,8 @@ License-File: LICENSE
20
20
  Package Description
21
21
  ===================
22
22
 
23
- The **PythonExtensionsCollection** package extends the functionality of
24
- Python by some useful functions that are not available in Python
25
- immediately.
23
+ The **PythonExtensionsCollection** extends the functionality of Python
24
+ by some useful functions that are not available in Python immediately.
26
25
 
27
26
  How to install
28
27
  --------------
@@ -41,22 +40,59 @@ ways.
41
40
 
42
41
  2. Installation via GitHub (recommended for developers)
43
42
 
44
- Clone the **python-extensions-collection** repository to your
45
- machine.
43
+ - Clone the **python-extensions-collection** repository to your
44
+ machine.
46
45
 
47
- ``` {.}
48
- git clone https://github.com/test-fullautomation/python-extensions-collection.git
49
- ```
46
+ ``` {.}
47
+ git clone https://github.com/test-fullautomation/python-extensions-collection.git
48
+ ```
50
49
 
51
- [PythonExtensionsCollection in
52
- GitHub](https://github.com/test-fullautomation/python-extensions-collection)
50
+ [PythonExtensionsCollection in
51
+ GitHub](https://github.com/test-fullautomation/python-extensions-collection)
53
52
 
54
- Use the following command to install the
55
- **PythonExtensionsCollection**:
53
+ - Install dependencies
56
54
 
57
- ``` {.}
58
- setup.py install
59
- ```
55
+ **PythonExtensionsCollection** requires some additional Python
56
+ libraries. Before you install the cloned repository sources you
57
+ have to install the dependencies manually. The names of all
58
+ related packages you can find in the file `requirements.txt` in
59
+ the repository root folder. Use pip to install them:
60
+
61
+ ``` {.}
62
+ pip install -r ./requirements.txt
63
+ ```
64
+
65
+ Additionally install **LaTeX** (recommended: TeX Live). This is
66
+ used to render the documentation.
67
+
68
+ - Configure dependencies
69
+
70
+ The installation of **PythonExtensionsCollection** includes to
71
+ generate the documentation in PDF format. This is done by an
72
+ application called **GenPackageDoc**, that is part of the
73
+ installation dependencies (see `requirements.txt`).
74
+
75
+ **GenPackageDoc** uses **LaTeX** to generate the documentation
76
+ in PDF format. Therefore **GenPackageDoc** needs to know where
77
+ to find **LaTeX**. This is defined in the **GenPackageDoc**
78
+ configuration file
79
+
80
+ ``` {.}
81
+ packagedoc\packagedoc_config.json
82
+ ```
83
+
84
+ Before you start the installation you have to introduce the
85
+ following environment variable, that is used in
86
+ `packagedoc_config.json`:
87
+
88
+ - `GENDOC_LATEXPATH` : path to `pdflatex` executable
89
+
90
+ - Use the following command to install the
91
+ **PythonExtensionsCollection**:
92
+
93
+ ``` {.}
94
+ setup.py install
95
+ ```
60
96
 
61
97
  Package Documentation
62
98
  ---------------------
@@ -91,7 +127,7 @@ Contributors
91
127
  License
92
128
  -------
93
129
 
94
- Copyright 2020-2022 Robert Bosch GmbH
130
+ Copyright 2020-2023 Robert Bosch GmbH
95
131
 
96
132
  Licensed under the Apache License, Version 2.0 (the \"License\"); you
97
133
  may not use this file except in compliance with the License. You may
@@ -1,4 +1,4 @@
1
- .. Copyright 2020-2022 Robert Bosch GmbH
1
+ .. Copyright 2020-2023 Robert Bosch GmbH
2
2
 
3
3
  .. Licensed under the Apache License, Version 2.0 (the "License");
4
4
  you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
15
15
  Package Description
16
16
  ===================
17
17
 
18
- The **PythonExtensionsCollection** package extends the functionality of Python by some useful functions
18
+ The **PythonExtensionsCollection** extends the functionality of Python by some useful functions
19
19
  that are not available in Python immediately.
20
20
 
21
21
  How to install
@@ -33,19 +33,48 @@ The **PythonExtensionsCollection** can be installed in two different ways.
33
33
 
34
34
  2. Installation via GitHub (recommended for developers)
35
35
 
36
- Clone the **python-extensions-collection** repository to your machine.
36
+ * Clone the **python-extensions-collection** repository to your machine.
37
37
 
38
- .. code::
38
+ .. code::
39
39
 
40
- git clone https://github.com/test-fullautomation/python-extensions-collection.git
40
+ git clone https://github.com/test-fullautomation/python-extensions-collection.git
41
41
 
42
- `PythonExtensionsCollection in GitHub <https://github.com/test-fullautomation/python-extensions-collection>`_
42
+ `PythonExtensionsCollection in GitHub <https://github.com/test-fullautomation/python-extensions-collection>`_
43
43
 
44
- Use the following command to install the **PythonExtensionsCollection**:
44
+ * Install dependencies
45
45
 
46
- .. code::
46
+ **PythonExtensionsCollection** requires some additional Python libraries. Before you install the cloned repository sources
47
+ you have to install the dependencies manually. The names of all related packages you can find in the file ``requirements.txt``
48
+ in the repository root folder. Use pip to install them:
49
+
50
+ .. code::
51
+
52
+ pip install -r ./requirements.txt
53
+
54
+ Additionally install **LaTeX** (recommended: TeX Live). This is used to render the documentation.
55
+
56
+ * Configure dependencies
57
+
58
+ The installation of **PythonExtensionsCollection** includes to generate the documentation in PDF format. This is done by
59
+ an application called **GenPackageDoc**, that is part of the installation dependencies (see ``requirements.txt``).
60
+
61
+ **GenPackageDoc** uses **LaTeX** to generate the documentation in PDF format. Therefore **GenPackageDoc** needs to know where to find
62
+ **LaTeX**. This is defined in the **GenPackageDoc** configuration file
63
+
64
+ .. code::
65
+
66
+ packagedoc\packagedoc_config.json
67
+
68
+ Before you start the installation you have to introduce the following environment variable, that is used in ``packagedoc_config.json``:
69
+
70
+ - ``GENDOC_LATEXPATH`` : path to ``pdflatex`` executable
71
+
72
+ * Use the following command to install the **PythonExtensionsCollection**:
73
+
74
+ .. code::
75
+
76
+ setup.py install
47
77
 
48
- setup.py install
49
78
 
50
79
  Package Documentation
51
80
  ---------------------
@@ -57,7 +86,7 @@ A detailed documentation of the **PythonExtensionsCollection** can be found here
57
86
  Feedback
58
87
  --------
59
88
 
60
- To give us a feedback, you can send an email to `Thomas Pollerspöck <mailto:Thomas.Pollerspoeck@de.bosch.com>`_
89
+ To give us a feedback, you can send an email to `Thomas Pollerspöck <mailto:Thomas.Pollerspoeck@de.bosch.com>`_
61
90
 
62
91
  In case you want to report a bug or request any interesting feature, please don't hesitate to raise a ticket.
63
92
 
@@ -78,7 +107,7 @@ Contributors
78
107
  License
79
108
  -------
80
109
 
81
- Copyright 2020-2022 Robert Bosch GmbH
110
+ Copyright 2020-2023 Robert Bosch GmbH
82
111
 
83
112
  Licensed under the Apache License, Version 2.0 (the "License");
84
113
  you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  # **************************************************************************************************************
2
2
  #
3
- # Copyright 2020-2022 Robert Bosch GmbH
3
+ # Copyright 2020-2023 Robert Bosch GmbH
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,13 +0,0 @@
1
- # Copyright 2020-2022 Robert Bosch GmbH
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
@@ -1,13 +0,0 @@
1
- # Copyright 2020-2022 Robert Bosch GmbH
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.