No project description provided
Project description
mapepire-python
- Overview
- Setup
- Example usage
- Development Setup
- Run local test suite
Overview
mapepire-python
is a Python client implementation for Mapepire that provides a simple interface for connecting to an IBM i server and running SQL queries. The client is designed to work with the Mapepire Server Component
Setup
mapepire-python
requires Python 3.9 or later.
Install with pip
mapepire-python
is available on PyPi. Just Run
pip install mapepire-python
Server Component Setup
To use mapire-python, you will need to have the Mapepire Server Component running on your IBM i server. Follow these instructions to set up the server component: Mapepire Server Installation
Example usage
The following script sets up a DaemonServer
object that will be used to connect with the Server Component. Then a single SQLJob
is created to facilitate the connection from the client side.
from mapepire_python.client.sql_job import SQLJob
from mapepire_python.types import DaemonServer
creds = DaemonServer(
host="localhost",
port=8085,
user="USER",
password="PASSWORD",
ignoreUnauthorized=True
)
job = SQLJob()
res = job.connect(creds)
query = job.query("select * from sample.employee")
result = query.run(rows_to_fetch=3)
print(result)
Here is the output from the script above:
{
"id":"query3",
"has_results":true,
"update_count":-1,
"metadata":{
"column_count":14,
"job":"330955/QUSER/QZDASOINIT",
"columns":[
{
"name":"EMPNO",
"type":"CHAR",
"display_size":6,
"label":"EMPNO"
},
{
"name":"FIRSTNME",
"type":"VARCHAR",
"display_size":12,
"label":"FIRSTNME"
},
{
"name":"MIDINIT",
"type":"CHAR",
"display_size":1,
"label":"MIDINIT"
},
{
"name":"LASTNAME",
"type":"VARCHAR",
"display_size":15,
"label":"LASTNAME"
},
{
"name":"WORKDEPT",
"type":"CHAR",
"display_size":3,
"label":"WORKDEPT"
},
{
"name":"PHONENO",
"type":"CHAR",
"display_size":4,
"label":"PHONENO"
},
{
"name":"HIREDATE",
"type":"DATE",
"display_size":10,
"label":"HIREDATE"
},
{
"name":"JOB",
"type":"CHAR",
"display_size":8,
"label":"JOB"
},
{
"name":"EDLEVEL",
"type":"SMALLINT",
"display_size":6,
"label":"EDLEVEL"
},
{
"name":"SEX",
"type":"CHAR",
"display_size":1,
"label":"SEX"
},
{
"name":"BIRTHDATE",
"type":"DATE",
"display_size":10,
"label":"BIRTHDATE"
},
{
"name":"SALARY",
"type":"DECIMAL",
"display_size":11,
"label":"SALARY"
},
{
"name":"BONUS",
"type":"DECIMAL",
"display_size":11,
"label":"BONUS"
},
{
"name":"COMM",
"type":"DECIMAL",
"display_size":11,
"label":"COMM"
}
]
},
"data":[
{
"EMPNO":"000010",
"FIRSTNME":"CHRISTINE",
"MIDINIT":"I",
"LASTNAME":"HAAS",
"WORKDEPT":"A00",
"PHONENO":"3978",
"HIREDATE":"01/01/65",
"JOB":"PRES",
"EDLEVEL":18,
"SEX":"F",
"BIRTHDATE":"None",
"SALARY":52750.0,
"BONUS":1000.0,
"COMM":4220.0
}
],
"is_done":false,
"success":true
}
Development Setup
This guide provides instructions for setting up a Python virtual environment using either venv
or conda
.
Setup python virtual environment with pip and venv
- Create and activate virtual environment
- Prepare pip
- Install packages from
requirements-dev.txt
Create a new virtual environment
Note: This applies to supported versions of Python 3.8 and higher
navigate to the project's directory and run the following command. This will create a new virtual environment in a local folder named .venv
cd mapepire-python/
Unix/macOS
python3 -m venv .venv
Windows
py -m venv .venv
The second argument is the location of the virtual environment, which will create a the virtual environment in the mapepire-python project root directory: mapepire-python/.venv
Activate the virtual environment:
before installing the project dependencies, activate
the virtual environment to put the environment-specific python
and pip
executables into your shell's PATH
Unix.macOS
source .venv/bin/activate
Windows
.venv\Scripts\activate
Confirm the virtual environment is activated, check the location of the Python interpreter:
Unix/macOS
which python
Windows
where python
Expected output should be:
.venv/bin/python # Unix/macOS
.venv\Scripts\python # Windows
To deactivate the virtual environment, run:
deactivate
from the mapepire-python
project directory
Prepare pip
Make sure pip is up to date:
Unix/macOS
python3 -m pip install --upgrade pip
python3 -m pip --version
Windows
py -m pip install --upgrade pip
py -m pip --version
Install Dependencies using requirements-dev.txt
Run the following to install the project dependencies:
Unix/macOS
python3 -m pip install -r requirements-dev.txt
Windows
py -m pip install -r requirements-dev.txt
Setup Python virtual environment with Conda
First, install Conda if you haven't already by following the instructions in this guide. There are installers for macOS/Windows and Linux. I recommend the following installers for this project:
- Miniconda
- Miniconda is a minimal installer provided by Anaconda.
- Anaconda
- Anaconda Distribution is a full featured installer that comes with a suite of packages for data science, as well as Anaconda Navigator, a GUI application for working with conda environments.
Create an environment from an environment-dev.yml file
In a terminal, navigate to the mapepire-python
project directory and run the following command:
cd mapepire-python/
conda env create -f environment-dev.yml
The conda env create
command will create a python environment called mapepire-dev
.
1. Activate the new environment:
conda activate mapepire-dev
2. Verify the new environment was installed:
conda env list
You can also use conda info --envs.
To deactivate, call:
conda deactivate
Run local test suite
First, create a pytest.ini
file in the tests
directory.
tests/pytest.ini
[pytest]
env =
VITE_SERVER=IBMI_SERVER
VITE_DB_USER=USER
VITE_DB_PASS=PASS
Run the test suite from the mapepire-python
directory:
# activate python development environment first
pytest tests/
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mapepire_python-0.1.4.tar.gz
.
File metadata
- Download URL: mapepire_python-0.1.4.tar.gz
- Upload date:
- Size: 22.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0d9cc6387dccb66b215794d5d98a5e9974a6eb0041b4c2a8bcef9999c17a141 |
|
MD5 | 517c294345bd2d636470c7a60ff4bf56 |
|
BLAKE2b-256 | db6b77874432b531db292f2e1d6f72c5066b81eb039249e57de52bd15bdf815f |
File details
Details for the file mapepire_python-0.1.4-py3-none-any.whl
.
File metadata
- Download URL: mapepire_python-0.1.4-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f953d2139cd399ab45890eeb028a1e3ff769da14941c1433e45b195a6d186d9e |
|
MD5 | 5198f48e11f066bb65d8c26a8d379f59 |
|
BLAKE2b-256 | 9734f0dce2c19dc6ca1e4958e665d1a12d79d0eafadd426d4c0a2d5c48caefeb |