1. building only module

	pip install -r minimal_requirements.txt (or just install numpy and mypy with pip)
	mypy is required to build pyi - file with stubs for pylance (tips for coding)

	We need do build shared library from custom.c

	LINUX: 
		just build custom.so by command:
			gcc custom.c -shared -o custom.so -I/path/to/python/include -I/path/to/numpy/include

			
	WINDOWS: 
		build custom.pyd (the same thing as custom.dll, just renamed) by command:
			cl.exe custom.c /LD /I "D:/Program Files/Python312/Lib/site-packages/numpy/core/include/numpy" /I  "D:/Program Files/Python312/include" /link /LIBPATH:"D:/Program Files/Python312/libs" /out:custom.pyd

			"D:/Program Files/Python312" - python 3.12  install path

	CMAKE:
		Easiest way is to use cmake. Example (from project directory):
			mkdir build
			cd buid
			cmake ..
			cmake --build .


2. building and installing modules for pip

	pip install -r requirements.txt

	buid module (whl):
		python -m build PATH\TO\DIR\WITH\setup.py

	install module:
		pip install .\PATH\TO\whl-file


3. Several ways to use module: 
	- build and install as paragraph 2
	- copy .pyd or .so file to module search path (command to find: python -m site) or add directory with .pyd or .so file to PYTHONPATH environment variable 

	.pyi files is required for pylance (vscode tips for coding). To use it set python.analysis.extraPaths in settings.json file to directory containing .pyi file

4. Files description

	settings_example: example of settings for vscode
	custom.c: extention code
	minimal_requirements.txt: requirements for just building extention
	requirements.txt: requirements to build extention as .whl file to be able to install module with pip
	setup.py, pyproject.toml: need to build .whl
	CMakeLists.txt: file for cmake build system
	test.py: working module example (watch paragraph 3)