• 113 Posts
  • 354 Comments
Joined 1 year ago
cake
Cake day: June 13th, 2023

help-circle




  • Sure, but nox is the closer counterpart for in-venv-task definitions. List “sessions” with -l, pick specific sessions to run with -s.

    import nox
    from nox.sessions import Session
    
    nox.options.reuse_existing_virtualenvs = True
    APP_NAME = 'logging_strict'
    
    @nox.session(python='3.12')
    def mypy(session: Session):
        """Static type checker (in strict mode)"""
        session.install('-U', 'mypy', '.')
        session.run('mypy',  '-p', APP_NAME, *session.posargs)
    

    Unfortunately it doesn’t currently do any parallel runs, but if anyone wants to track/encourage/contribute in that regard, see nox#544.



  • No, I don’t use GHA locally, but the actions are defined to run the same things that I do run locally (e.g. invoke nox). I try to keep the GHA-exclusive boilerplate to a minimum. Steps can be like:

    - name: fetch code
      uses: actions/checkout@v4
    
    - uses: actions/setup-python@v5
      with:
        allow-prereleases: true
        python-version: |
          3.13
          3.12
          3.11
          3.10
          3.9
          3.8
          3.7
    
    - run: pipx install nox
    
    - name: run ward tests in nox environment
      run: nox -s test test_without_toml combine_coverage --force-color
      env:
        PYTHONIOENCODING: utf-8
    
    - name: upload coverage data
      uses: codecov/codecov-action@v4
      with:
        files: ./coverage.json
        token: ${{ secrets.CODECOV_TOKEN }}
    

    Sometimes if I want a higher level interface to tasks that run nox or other things locally, I use taskipy to define them in my pyproject.toml, like:

    [tool.taskipy.tasks]
    fmt = "nox -s fmt"
    lock = "nox -s lock"
    test = "nox -s test test_without_toml typecheck -p 3.12"
    docs = "nox -s render_readme render_api_docs"
    



















  • Andy@programming.devtoLinux@lemmy.mlbest linux terminal emulator
    link
    fedilink
    arrow-up
    18
    arrow-down
    1
    ·
    2 months ago

    For me: Wezterm. It does pretty much everything. I don’t think Alacritty/Kitty etc. offer anything over it for my usage, and the developer is a pleasure to engage with.

    Second place is Konsole – it does a lot, is easy to configure, and obviously integrates nicely with KDE apps.

    Honorable mention is Extraterm, which has been working on cool features for a long time, and is now Qt based.














  • The convention

    That’s one convention. I don’t like it, I prefer to keep my venvs elsewhere. One reason is that it makes it simpler to maintain multiple venvs for a single project, using a different Python version for each, if I ever want to. It shouldn’t matter to anyone else, as it’s my environment, not some aspect of the shared repo. If I ever needed it there for some reason, I could always ln -s $VIRTUAL_ENV .venv.

    Learn pyenv

    I have used pyenv. It’s fine. These days I use mise instead, which I prefer. But neither of them dictate how I create and store venvs.

    Shell scripts within Python packages is depreciated

    I don’t understand if what you’re referencing relates to my comment.