Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HH-245784 switch to forgejo dependencies #26

Merged
merged 3 commits into from
Jan 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 27 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,38 @@ Byte order: big endian

# building pyfastpfor lib

Мы используем свой форк библиотеки pyfastpfor https://github.com/hhru/PyFastPFor, чтобы ограничить CPU инструкции, которые
с++ компилятор должен использовать при компиляции кода библиотеки. (можно посмотреть коммиты)
Мы используем свой форк библиотеки pyfastpfor https://forgejo.pyn.ru/hhru/PyFastPFor, чтобы ограничить CPU инструкции, которые
с++ компилятор должен использовать при компиляции кода библиотеки.
Сборка с инструкцией -march=native использует все CPU инструкции доступные на машинке, где происходит сборка. Мы обычно собираем образ
базовый кардинала на стенде, а на стендах отличаются CPU инструкции от прода, посмотреть можно такой командой: grep flags /proc/cpuinfo -m1
Поэтому мы ограничили их такими флагами: '-mavx2', '-mavx', '-msse4.1'
Тут больше информации о флагах при сборке c++ кода: https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html

Чтобы собрать .whl файл, нужно скачать репозиторий pyfastpfor
2 способа использования нашего форка:

1. Способ через путь до git проекта (сейчас актуальный)

Указываем путь в setup.py путь до нашего репозитория:

install_requires=[
'pyfastpfor @ git+https://forgejo.pyn.ru/hhru/PyFastPFor.git@master#subdirectory=python_bindings'
]

Т.к. инструкции в форке уже ограничены всё по умолчанию подхватится

2. Способ через .whl файл

Чтобы собрать .whl файл, нужно скачать репозиторий pyfastpfor https://forgejo.pyn.ru/hhru/PyFastPFor/

Перейти в папку: cd ./python_bindings

Если надо, поменять версию в setup.py файле

Выполнить команду сборки .whl файла: sudo /usr/local/bin/python3.9 setup.py bdist_wheel

Копировать новый файл (он находится по пути python_bindings/dist) .whl в папку libs и в setup.py изменить имя файла в install_requires секции
Копировать новый файл (он находится по пути python_bindings/dist) .whl в папку libs и в setup.py использовать в таком виде зависимость:

install_requires=[
f"pyfastpfor @ file://localhost/{os.getcwd()}/libs/pyfastpfor-1.4.1-cp39-cp39-linux_x86_64.whl"
],

2 changes: 1 addition & 1 deletion np-array-java/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

<groupId>ru.hh.search</groupId>
<artifactId>np-array</artifactId>
<version>1.1.13-SNAPSHOT</version>
<version>1.1.14-SNAPSHOT</version>

<name>np-array</name>

Expand Down
3 changes: 1 addition & 2 deletions np-array-python/setup.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# coding=utf-8
import os

from setuptools import setup
from version import version
Expand All @@ -13,7 +12,7 @@
'nparray'
],
install_requires=[
'pyfastpfor @ git+https://github.com/1ou/PyFastPFor.git@master#subdirectory=python_bindings'
'pyfastpfor @ git+https://forgejo.pyn.ru/hhru/PyFastPFor.git@master#subdirectory=python_bindings'
],
test_suite='tests',
tests_require=[
Expand Down
2 changes: 1 addition & 1 deletion np-array-python/tests/test_arrays.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ def test_compressed_integer_array(self):
with Serializer(filename) as serializer:
serializer.serialize(**data)

with Deserializer(filename) as deserializer:
with Deserializer(filename, uncompress_on_read=False) as deserializer:
result = deserializer.deserialize()

self.assertTrue(len(result['compressed_integer_array']) == 2)
Expand Down
2 changes: 1 addition & 1 deletion np-array-python/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version = '1.1.12'
version = '1.1.13'