#-------------------------------------------------------------------------------
#  [1] MacPorts initialization:
#
#      The four packages 1) Qt5, 2) Ruby, 3) Python, and 4) libgit2 are required.
#      A typical installation flow is shown below.
#-------------------------------------------------------------------------------
   $ sudo port install coreutils
   $ sudo port install findutils
   $ sudo port install qt5
   $ sudo port install ruby34
   $ sudo port install python314
   $ sudo port install py314-pip
   $ sudo port install libgit2

   $ sudo port select --set python3 python314
   $ sudo port select --set python  python314
   $ sudo port select --set pip3    pip314
   $ sudo port select --set pip     pip314
   $ sudo port select --set ruby    ruby34

#-------------------------------------------------------------------------------
#  [2] Installation process of different Python modules using 'pip-3.14':
#-------------------------------------------------------------------------------
MacBookPro2{kazzz-s} ~ (1)% which pip3
/opt/local/bin/pip3

MacBookPro2{kazzz-s} ~ (2)% pip3 --version
pip 26.0.1 from /opt/local/Library/Frameworks/Python.framework/Versions/3.14/lib/python3.14/site-packages/pip (python 3.14)

MacBookPro2{kazzz-s} ~ (3)% sudo pip3 list
:
Package           Version
----------------- -------
pip               26.0.1
setuptools        80.10.2
:

MacBookPro2{kazzz-s} ~ (4)% sudo pip3 install wheel pandas scipy matplotlib
:
:
:

MacBookPro2{kazzz-s} ~ (5)% pip3 list --outdated
:
: update outdated modules if any
:

MacBookPro2{kazzz-s} ~ (6)% pip3 list
Package           Version
----------------- -------
altgraph          0.17.5
anytree           2.13.0
build             1.5.1
Cython            3.2.6
delocate          0.13.0
installer         1.0.1
klayout           0.30.9
libxml2-python    2.15.3
lxml              6.1.1
macholib          1.16.4
Mako              1.3.12
Markdown          3.10.2
MarkupSafe        3.0.3
meson             1.11.2
packaging         26.2
pip               26.0.1
pycairo           1.29.0
Pygments          2.20.0
PyGObject         3.56.3
pyproject_hooks   1.2.0
PyYAML            6.0.3
setuptools        80.10.2
typing_extensions 4.16.0
wheel             0.47.0

#-------------------------------------------------------------------------------
#  [3] Python module import test:
#
#      Run this sample python from "Macro Development" with such a sample CSV.
#-------------------------------------------------------------------------------
'''
# Enter your Python code here
import os
import numpy as np
import scipy
import matplotlib
import pandas as pd

sampleCSV = os.environ["HOME"] + "/KLayout/sampleCSV.csv"
df = pd.read_csv( sampleCSV, comment='#' )
print(df)
'''

== Output ==
      X[mm]  Y[mm]   Ratio[]
0       0.0    3.1  1.006617
1       2.7   -1.5  1.006607
2      -2.7   -1.5  1.006321
3       0.0    9.2  1.006651
4       5.9    7.0  1.006211
...     ...    ...       ...
1805  -30.3  140.7  0.994904
1806  -24.3  141.9  0.994266
1807  -18.3  142.8  0.994888
1808  -12.2  143.4  0.994146
1809   -6.1  143.11  0.993552

[1810 rows x 3 columns]

#------------------
# End of File
#------------------
