Skip to content

Commit

Permalink
3.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
cmccarthy1 committed Nov 12, 2024
1 parent 8b9cfb6 commit 92979eb
Show file tree
Hide file tree
Showing 221 changed files with 28,685 additions and 4,797 deletions.
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,14 @@ __pycache__/
**/4-1-libs/*.k_
**/4-1-libs/*.k
!**/4-1-libs/q.k
**/4-1-libs/**/libe.so
**/4-1-libs/**/e.*

#ToDo revert in KXI-44621
src/pykx/lib/4-1-libs/l64/kxreaper
src/pykx/lib/4-1-libs/l64/libkurl.so
src/pykx/lib/4-1-libs/l64/libobjstor.so
src/pykx/lib/4-1-libs/l64/pg

# Distribution / packaging
.Python
Expand Down Expand Up @@ -219,9 +227,13 @@ custom_theme/partials/header.html
.nvimrc
Session.vim

# Editor temp files
*~

# Coverage Reports
.coverage*
.scannerwork*
*report.xml
report.xml
coverage.xml
.pymon
Expand Down
3 changes: 3 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,6 @@ prune docs
prune benchmarks
prune examples
prune tests

include docs/api/pykx-execution/q.md

15 changes: 6 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,34 +93,32 @@ KX only officially supports versions of PyKX built by KX, i.e. versions of PyKX

PyKX depends on the following third-party Python packages:

- `pandas>=1.2, < 2.2.0`
- `pandas>=1.2, < 2.0; python_version=='3.8'`
- `pandas>=1.2, < 2.2.0; python_version>'3.8'`
- `numpy~=1.22, <2.0; python_version<'3.11'`
- `numpy~=1.23, <2.0; python_version=='3.11'`
- `numpy~=1.26, <2.0; python_version=='3.12'`
- `pytz>=2022.1`
- `toml~=0.10.2`
- `dill>=0.2.0`

They are installed automatically by `pip` when PyKX is installed.

PyKX also has an optional Python dependency of `pyarrow>=3.0.0`, which can be included by installing the `pyarrow` extra, e.g. `pip install pykx[pyarrow]`

When using PyKX with KX Dashboards users will be required to install `ast2json~=0.3` this can be installed using the `dashboards` extra, e.g. `pip install pykx[dashboards]`

When using PyKX Beta features users will be required to install `dill>=0.2.0` this can be installed using the `beta` extra, e.g. `pip install pykx[beta]`
When using PyKX Streaming users may require the ability to stop processes initialized in a now unavailable process to facilitate this PyKX can make use of `psutil` this can be installed using the `streaming` extra, e.g. `pip install pykx[streaming]`

When using Streamlit users will be required to install `streamlit~=1.28` this can be installed using the `streamlit` extra, e.g. `pip install pykx[streamlit]`

**Warning:** Trying to use the `pa` conversion methods of `pykx.K` objects or the `pykx.toq.from_arrow` method when PyArrow is not installed (or could not be imported without error) will raise a `pykx.PyArrowUnavailable` exception. `pyarrow` is supported Python 3.8-3.10 but remains in Beta for Python 3.11.
**Warning:** Trying to use the `pa` conversion methods of `pykx.K` objects or the `pykx.toq.from_arrow` method when PyArrow is not installed (or could not be imported without error) will raise a `pykx.PyArrowUnavailable` exception.

#### Optional Non-Python Dependencies

- `libssl` for TLS on [IPC connections](docs/api/ipc.md).
- `libpthread` on Linux/MacOS when using the `PYKX_THREADING` environment variable.

#### Windows Dependencies

To run q or PyKX on Windows, `msvcr100.dll` must be installed. It is included in the [Microsoft Visual C++ 2010 Redistributable](https://www.microsoft.com/en-ca/download/details.aspx?id=26999).

## Building from source

### Installing Dependencies
Expand All @@ -144,7 +142,6 @@ Windows:
* [Python](https://www.python.org/downloads/windows/)
* [Build Tools for Visual Studio](https://visualstudio.microsoft.com/downloads/?q=build+tools).
* [dlfcn-win32](https://github.com/dlfcn-win32/dlfcn-win32). Can be installed using [Vcpkg](https://github.com/microsoft/vcpkg).
* `msvcr100.dll`. Available in [Microsoft Visual C++ 2010 Redistributable](https://www.microsoft.com/en-ca/download/details.aspx?id=26999).

To install the above dependencies, you can run the `w64_install.ps1` script as an administrator:

Expand Down Expand Up @@ -198,7 +195,7 @@ export QHOME=/location/of/your/q #q needs QHOME available
python -m pytest -vvv -n 0 --no-cov --junitxml=report.xml
```

## PyKX License access and enablement
## PyKX Licenses

This work is dual licensed under [Apache 2.0](https://code.kx.com/pykx/license.html#apache-2-license) and the [Software License for q.so](https://code.kx.com/pykx/license.html#qso-license) and users are required to abide by the terms of both licenses in their entirety.

Expand Down
11 changes: 6 additions & 5 deletions conda-recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,23 @@ requirements:
- git
- python
- setuptools>=68.0
- setuptools_scm[toml]>=7.1.0 # [py==37]
- setuptools_scm[toml]>=8.0.0 # [py!=37]
- setuptools_scm[toml]>=8.0.0
- cython==3.0.0
- numpy==1.26 # [py==312]
- numpy==1.22.* # [py!=37 and py<312]
- numpy==1.20 # [py==37]
- numpy==1.22.* # [py<312]
- tomli>=2.0.1
- wheel>=0.36
- sysroot_linux-64 # [linux64]

run:
- python
- numpy>=1.22,<2.0
- pandas>=1.2, <2.2.0
- pandas>=1.2, <2.2.0 # [py>38]
- pandas<2.0 # [py==38]
- pytz>=2022.1
- toml>=0.10.2
- dill>=0.2.0
- requests>2.25.0

test:
imports:
Expand Down
5 changes: 5 additions & 0 deletions docs/api/columns.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# PyKX Column Objects

::: pykx.wrappers.Column

::: pykx.wrappers.QueryPhrase
11 changes: 10 additions & 1 deletion docs/api/compress.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
# Compression and Encryption APIs
---
title: Compression and encryption
description: API reference page for using kdb+ compression and encryption through PyKX
author: KX Systems
date: September 2024
tags: compression, encryption, dare
---
# Compression and encryption API

_This page documents utilities for managing configuration of compression and encryption settings for on-disk data._

::: pykx.compress_encrypt
rendering:
Expand Down
9 changes: 8 additions & 1 deletion docs/api/db.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
# Database interaction and management functionality
---
title: DB Admin
description: API reference page for managing kdb+ databases with PyKX
author: KX Systems
date: September 2024
tags: admin, management
---
# Database interaction and management

::: pykx.db
rendering:
Expand Down
8 changes: 8 additions & 0 deletions docs/api/exceptions.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
---
title: Exceptions
description: Reference page explaining the different custom exceptions implemented in PyKX
author: KX Systems
date: September 2024
tags: exceptions, errors
---

# Exceptions

::: pykx.exceptions
11 changes: 11 additions & 0 deletions docs/api/ipc.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
---
title: q IPC
description: API reference page for connecting to q processes using IPC
author: KX Systems
date: September 2024
tags: ipc, connections
---
# IPC

::: pykx.ipc
handler: python
options:
show_source: true
members_order: "source"
9 changes: 8 additions & 1 deletion docs/api/license.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
---
title: License management
description: Utilities for the management of PyKX licenses
author: KX Systems
date: September 2024
tags: license
---
# License management

The functionality presented here provides users with utilities allowing for the management of PyKX licenses and their lifecycle
_This page documents utility functions that allow users to manage their PyKX licenses._

::: pykx.license
rendering:
Expand Down
9 changes: 9 additions & 0 deletions docs/api/pykx-execution/console.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
---
title: Emulated q console
description: q console emulation in a python repl
author: KX Systems
date: September 2024
tags: console,repl
---
# PyKX Console

_This page documents the use of the emulated q console available during use of a Python repl._

::: pykx.console
11 changes: 10 additions & 1 deletion docs/api/pykx-execution/ctx.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# Context Interface
---
title: q context interface
description: PyKX interface for q contexts/namespaces
author: KX Systems
date: September 2024
tags: namespace
---
# q Context Interface

_This page documents the interface used for accessing q contexts/namespaces._

::: pykx.ctx
2 changes: 2 additions & 0 deletions docs/api/pykx-execution/embedded_q.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# PyKX Execution Classes

_This page documents the base class for all interfaces between Python and the embedded q process._

::: pykx.Q

::: pykx.EmbeddedQ
Loading

0 comments on commit 92979eb

Please sign in to comment.