dictation-toolbox / dragonfly

Speech recognition framework allowing powerful Python-based scripting and extension of Dragon NaturallySpeaking (DNS), Windows Speech Recognition (WSR), Kaldi and CMU Pocket Sphinx
GNU Lesser General Public License v3.0
375 stars 73 forks source link

PEP660/ compatible install for easier devs #353

Closed dougransom closed 2 years ago

dougransom commented 2 years ago

"Python programmers want to be able to develop packages without having to install (i.e. copy) them into site-packages, for example, by working in a checkout of the source repository."

https://www.python.org/dev/peps/pep-0660/

flit install --symlink works pretty well for packages build with flit. To move to flit from setuptools just requires a src directory structure and to move the metadata to pyproject.toml (PEP517).

dougransom commented 2 years ago

I don't know how to mark this as a possible enhancement for consideration as opposed to an issue that needs to be addressed dye to a deficiency.

LexiconCode commented 2 years ago

How dragonfly is currently setup I use the following 'pip install -e .' The dot symbol can be replaced with the absolute path as well.

dougransom commented 2 years ago

maybe it is a non-issue then - the use case is already supported? I didn't think there was a solution for a setuptools package. If pip -e works this should be closed?

LexiconCode commented 2 years ago

I think 'pip install -e .' does solve the use case. To summarize the issue is to ease developers installing the package in a local directory. Thus allowing edits to being made without having the package reside in site-packages. If I've misunderstood definitely reopen the issue.

drmfinlay commented 2 years ago

Aaron is correct; pip install -e allows this already.

Symbolic links are one way of implementing editable installations. However, some systems place restrictions upon the creation of symbolic links. For instance, Windows (by default) allows only members of the Administrators group to create symbolic links. This is documented here.

Pip's .egg-link files are a better general solution to this problem, so I would prefer to stick with pip over flit.