pyinfra icon indicating copy to clipboard operation
pyinfra copied to clipboard

`files.put()` does not expand `~`

Open simonhammes opened this issue 1 year ago • 1 comments

Describe the bug

files.put() does not expand ~ to the value of $HOME

To Reproduce

from pyinfra.operations import files

files.put(name='Copy file', src='README.md', dest='~/pyinfra-README.md')
pyinfra @local test.py

Observed behavior

A directory named ~ is created inside the current working directory.

Expected behavior

The file is copied to ~/pyinfra-README.md.

Meta

System Information

System: Linux
      Platform: Linux-6.1.0-26-amd64-x86_64-with-glibc2.36
      Release: 6.1.0-26-amd64
      Machine: x86_64
    pyinfra: v3.1.1
      black: v24.4.2
      black: v24.4.2
      click: v8.1.7
      configparser: v7.1.0
      coverage: v7.5.1
      coverage: v7.5.1
      distro: v1.9.0
      flake8: v7.0.0
      flake8: v7.0.0
      flake8-black: v0.3.6
      flake8-black: v0.3.6
      flake8-isort: v6.1.1
      flake8-isort: v6.1.1
      flake8-spellcheck: v0.12.1
      gevent: v24.10.3
      importlib-metadata: v8.5.0
      ipdb: v0.13.13
      ipdbplugin: v1.5.0
      ipython: v8.29.0
      isort: v5.13.2
      isort: v5.13.2
      jinja2: v3.1.4
      mypy: v1.13.0
      mypy: v1.13.0
      myst-parser: v2.0.0
      myst-parser: v2.0.0
      packaging: v24.1
      paramiko: v3.5.0
      pyinfra-guzzle-sphinx-theme: v0.16
      pyinfra-guzzle-sphinx-theme: v0.16
      pytest: v8.2.1
      pytest: v8.2.1
      pytest-cov: v5.0.0
      pytest-cov: v5.0.0
      python-dateutil: v2.9.0.post0
      pywinrm: v0.5.0
      redbaron: v0.9.2
      setuptools: v66.1.1
      sphinx: v6.2.1
      sphinx: v6.2.1
      twine: v5.1.1
      typeguard: v4.4.0
      types-PyYAML: v6.0.12.20240917
      types-PyYAML: v6.0.12.20240917
      types-cryptography: v3.3.23.2
      types-cryptography: v3.3.23.2
      types-paramiko: v3.5.0.20240928
      types-paramiko: v3.5.0.20240928
      types-python-dateutil: v2.9.0.20241003
      types-python-dateutil: v2.9.0.20241003
      types-setuptools: v75.2.0.20241025
      types-setuptools: v75.2.0.20241025
      typing-extensions: v4.12.2
      wheel: v0.44.0
    Executable: /data/Code/pyinfra/venv/bin/pyinfra
    Python: 3.11.2 (CPython, GCC 12.2.0)

simonhammes avatar Nov 02 '24 00:11 simonhammes

I encountered the bug while using the local connector. I don't know (yet) if other connectors are affected.

simonhammes avatar Nov 02 '24 01:11 simonhammes