#tools-and-devops

1 messages · Page 24 of 1

analog slate
#

hah

versed patrol
#

Are jupytr notebooks still the best OS-agnostic option for basic development?

analog slate
#

hi

#

What is the best method or library to study payment methods, modify them, and change the payment direction of a website?

thorny shell
#

dunno what you mean. But if I were interested in payments, I'd read about the Stripe API -- I hear their docs are unusually good

astral apex
#

Stripe's docs are hailed as the gold standard

#

Also Stripe themselves are a godsend for helping keep your PCI env small

cosmic nova
#

Hey folks, anyone here have experience with dragonfly?
I wanted to know how good are they versus redis, mainly how much cost they take up, which one is cheaper as i get conflicting results online

short peak
cosmic nova
#

Tbh i dont even mind if its same cost but better perf, but still

short peak
#

I don't know about costs, I was told that reason to justify redis migration. But something to highlight is that moving from redis to valkey is literally just replacing the names in code, pretty easy. You can even migrate your code and continue using redis instances if devops takes longer to replace it

astral apex
brazen forge
# astral apex

Aren't they only removing some container images from the DockerHub? They will still be available in GitHub?

gentle solstice
fresh seal
#

Has anyone made the switch from conda/mamba to pixi?

deep estuary
# astral apex

i think people actually depending on bitnami for prod are probably doing the wrong thing anyway

subtle quarry
inner pollen
#

I’ve extracted Gunicorn’s internal debug module and turned it into a standalone Python package. It traces deeply into the dependency tree and prints every line being executed. This library is mainly useful for students or anyone just curious about code flow , it’s not meant for serious memory profiling or performance analysis as people can argue pyinstrument and others are there, I will make this configureable to track only function , methods , a configuration based debugging tool this weekend , please do try it out and suggest improvements.

https://github.com/Agent-Hellboy/spewer Agent-Hellboy/spewer

GitHub

Contribute to Agent-Hellboy/spewer development by creating an account on GitHub.

echo niche
jade crown
#

Hey all. I just released my first open-source (fully free) project that I have been working for a few months called CodeBoarding. It uses static analysis + LLMs to generate interactive diagrams of Python codebases.
Repo : https://github.com/CodeBoarding/CodeBoarding
Any feedback on further integrations you’d like to see would be super helpful, thank you!

GitHub

🪄 Interactive Diagrams for Code. Contribute to CodeBoarding/CodeBoarding development by creating an account on GitHub.

devout geyser
unique oracle
#

i wanna deploy a fastapi app with docker and i am not sure where the sudo password should be stored.

rn, i am using the built in secrets manager of jenkins, but are there better ways to do this?

#

i feel like the only safer thing would be to use AWS KMS/secret manager + roles to restrict who can access what

gentle solstice
#

Most images don't even have sudo installed

unique oracle
#

AFAIK using sudo is best practice

deep estuary
#

so it's more of a temporary pain until that stuff becomes standard

#

if you want to be a little safer you can add your automation user to the docker group usually and you then shouldn't need to use sudo

#

If you don't want to preface the docker command with sudo, create a Unix group called docker and add users to it. When the Docker daemon starts, it creates a Unix socket accessible by members of the docker group. On some Linux distributions, the system automatically creates this group when installing Docker Engine using a package manager. In that case, there is no need for you to manually create the group.

#

I think this mostly covers your use case?

#

(See known limitations)

deep estuary
#

but yeah to summarise I'd definitely recommend using the docker group over sudo, there's still risks of root level access but it's more scoped than just straight up giving your CI user root

unique oracle
#

I setup sudo to only allow the docker command as a prefix, and since sudo requires a password, then it's more secure IIRC

#

I am using podman on some deployments but some things still need root e.g. nginx cuz ports 80 n 443 either way so i want to see if I can just sudo

unique oracle
deep estuary
#

hahahaha yeah it is

deep estuary
#

you can just start a container as root, mount your root filesystem and operate on it as the root user

#

so scoping your CI user still means that it can get root

deep estuary
#

wait I lied maybe you can't

#

but I remember my fix for this

#

I just set the minimum port limit to 0

#

with sysctl

#

it feels hacky but when you think about it the binding restriction is ultimately crap and outdated anyway

#

a malicious service binding to 1023 instead of 1025 offers it no advantage, and there are now dangerous ports above 1024 like basically every database server

#

sysctl -w net.ipv4.ip_unprivileged_port_start=0

unique oracle
#

correct but adding the user to the docker group means you have root at all times rather than only during the time in which we have the password available

#

I do use non root containers for things like Redis and my fastapi apps

deep estuary
#

yeah that's true, I just am not a fan of passwords in automation systems

#

I say this realising as an ansible lover whilst that ansible recommends you keep your sudo password in a text file in some configs 🤣🤣

unique oracle
#

I found this answer pretty helpful when I tried to deal with this before

#

visudo and a prefix that only allows certain commands

unique oracle
deep estuary
#

but yeah I can't think of a better alternative hahahaha

#

other than rootless I guess

silk mist
#

I'm currently using uv to make a project for distributable app with python

#

I'm looking for something to get me started on setting some flags in the source or in tools I could use where I'd specify whether I'm building a CLI-only distribution or a GUI/ CLI version

#

and at the same time I want development-specific variables/ paths

#

I remember using .env for these purposes with a nodejs project about 7 years ago but it's been a really long time since I've done that sort of thing

#

btw for the building part I'd use either pyinstaller or nuitka and I think that might be as simple as using different commands/ different spec files but I'm wondering if the same can be done while developing

silk mist
unique oracle
#

or maybe just uv + systemd if I really don't feel like using containers

deep estuary
deep estuary
unique oracle
#

I miss it when I use other languages

deep estuary
#

hell yeah brother

#

i've been doing a lot of fastapi with pydantic and it really is rock solid stuff

silk mist
#

I'm making an app with Qt so I'll probably use the QSettings for actual app settings and pydantic settings for telling QSettings where to look 😂

chilly hazel
#

Is cursor more expensive now, or is my context management bad (due to increased size of the codebase overtime... If you know what I mean.) ?
Same for Cline, some API's average at around 50cent per call now. Which is making me think , that my context management is not well set, or set at all in that case.

tropic chasm
#

can ruff provide full lsp capabilities and replace pyright?

placid nacelle
tropic chasm
#

yeah you are right

azure wren
#

Heyy y'all. I'm a bit new to python. Made my first project today. It's not something big lol but i tried.
I saw a lot of people struggling with keeping their CSV files [most of them containing a bunch of URLs that are used for data scraping, crawling and API Endpoints] up to date. So i made this:

repo : https://github.com/l-RAIN-404-l/DeadURL

It automatically cleans files from broken links, produces a report and a backup. I know there may be issues so y'all can give me a feedback or even contribute. Thank youuu✌️

GitHub

A Fast and Efficient Program to clean a large list of URLs from Broken URLs. Generates a scan report showing all URLs removed! A backup is also generated! - l-RAIN-404-l/DeadURL

simple crown
#

What's the best setup for learning python

zenith mango
#

start with console and go start exploring web dev py flask

short peak
tired drum
gentle solstice
#

Is this an ad?

shadow crow
#

!warn @astral thorn We don't allow advertising here.

rancid schoonerBOT
#

:incoming_envelope: :ok_hand: applied warning to @astral thorn.

manic plume
#

Been working on CLI tools lately and loving the Python ecosystem for developer experience.

The community here is amazing for getting feedback and ideas!

Anyone else building dev tools?

twilit forum
#

Anyone using aider? I just set it up today with help from a colleague. Seems really nice! 😊

left minnow
#

hi

#

can any one help me with a small problem

#

its related to python to exe converter

dire talon
delicate plaza
astral apex
#

GitHub is for code
Just put the Python file on GiHub directly

pastel trellis
#

Material palette Generator gives you material palette based on original material palette generation algorithm.

It's available in Github and PyPI

It's going to be a great tool for those who want to make their own UI theme based on any GUI toolkit such as tkinter, kivy, pygame, pyqt5 or anything else.

GitHub

🎨 A Python implementation of the Material Design color palette generator — generate palette of primary, complementary, analogous and triadic color from a base hex color. - blacksteel3/material-pale...

brittle terrace
muted canopy
#

How would I get started in the the role of devops?

mystic void
muted canopy
fervent mica
#

A decentralized AI infrastructure protocol has been developed over the past year by a small group of contributors, aiming to optimize computational power for AI model training and inference. The project seeks to provide a competitive and scalable alternative to traditional cloud providers. Reach out to me via DM to learn more.

willow palm
warped bolt
#

what lsp server do yall suggest for python in neovim?

marsh acorn
#

I use pylsp

twilit forum
#

I also use pylsp. It doesn't resolve some really quirky typing as I would have hoped. But it was still the best experience when I tried out lsp a year ago. (I think I did pipx python-lsp-server)

Other options would pyright and maybe ty?

eager flame
#

Hey everyone

I’ve just released HardView 3.1.0b1
This one adds a lot of new stuff, mainly the new LiveView module which comes with several classes and functions for real-time hardware monitoring.

Supports tracking CPU, RAM, disk usage, and even GPU (Windows only for now).
Temperature monitoring:
On Windows via a C++/CLI wrapper around LibreHardwareMonitorLib.
On Linux via lm-sensors
Also includes a function to fetch detailed CPUID info (Using an internal HardView library called cpuid.hpp ).

Install this beta version directly with:


pip install HardView==3.1.0b1

If you want to check out the docs, usage examples, and ready-to-use code:
👉https://gafoo173.github.io/HardView/LiveViewAPI/

GitHub repo (for the source, internal libs, tools, etc.):
👉 https://github.com/gafoo173/HardView

This release is still beta. It’s been tested a lot on Windows, and to a lesser extent on Linux. Testing on different devices and architectures would help a lot. If you run into any issues, feel free to DM me or open an issue on GitHub.

GitHub

A high-performance, cross-platform Python module (C-implemented) for comprehensive hardware information retrieval in JSON format And Python Objects. - gafoo173/HardView

opal tinsel
#

I have issues with Python ETL scripts here and there causing the whole ETL server going down due to the oom-killer from too much memory use.
Does anyone know a good go-to way to ensure that any rogue script doesn't take down the whole server?
I can't just say to the team "please mind memory usage", we just have too many Python ETL devs and projects. Some entire server-wide solution would be nice

opal tinsel
#

like in PHP you can configure a global memory limit for PHP scripts.
though if that's tought to set up globally in Python, then some systemd configuration would be nice to prevent the oom-killer from wreaking havoc on our server

hidden turret
# opal tinsel I have issues with Python ETL scripts here and there causing the whole ETL serve...

Linux has cgroups for that. You could create a group with a memory limit. example

But those are pretty fiddly to set up. I'd probably consider wrapping my script in a Docker container and using its resource constraint mechanism (which uses cgroups under the hood)

Gist

How to Limit CPU and Memory Usage With Cgroups on Debian/Ubuntu - README.md

Docker Documentation

Specify the runtime options for a container

deep estuary
#

provides a lot of nicer abstractions around cgroups

#

it's what we use for the !eval command on our bot to allow sandboxed execution of python code

#

!eval ```py
import sys, pathlib

print(sys.version)
print(list(pathlib.Path("/").glob("*")))

rancid schoonerBOT
hidden turret
#

TIL about nsjail.Thanks for the tip!

deep estuary
#

huge amount of customisation available

#

and because it's all just native linux features like process namespaces and cgroups it's all mostly transparent to programs running within jails

heavy knot
#

Hey i have next to no experience with python but i was trying to right a program that would help me do bulk downloads from internet archive and i can not seem to figure it out would anyone be able to help me or be willing to write me a program like i see on YouTube if i paid them? i would very much appreciate the help.

eager flame
#

Use the requests library if you want to download from any website on the internet. It's the easiest library to work with for this. If you want ready code and don’t have experience, you can use an AI tool to generate the code or practice using its functions yourself.

peak wraith
heavy knot
#

Okay thankyou sorry for the trouble im just trying to get the bulk downloads thing figured out and i did not know where to go thankyou for your time i will go to where you said,

brittle terrace
brittle terrace
eager flame
# brittle terrace I never understood American units like feet ... They are confusing So I built th...

D:>python main.py volume 1 l gal
┌──────────────────────────────────────────────── Traceback (most recent call last) ────────────────────────────────────────────────┐
│ D:\main.py:105 in volume │
│ │
│ 102 │ │ result_unit: Annotated[str, typer.Argument()] ┌────── locals ───────┐ │
│ 103 │ │ ): │ base_unit = 'l' │ │
│ 104 │ │ │ if base_unit in volume_units and result_unit in volume_units: │ result_unit = 'gal' │ │
│ > 105 │ │ │ r = (valuelength_units[base_unit])(1/length_units[result_unit]) │ value = 1.0 │ │
│ 106 │ │ │ if str(r)[-2:] == ".0": └─────────────────────┘ │
│ 107 │ │ │ │ r = int(r) │
│ 108 │ │ │ print(r) │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
KeyError: 'l'

D:>python main.py

#

I was trying out your uconvert tool and noticed a small bug in the volume command. Right now, it’s using length_units instead of volume_units when doing the conversion, so converting something like 1 l to gal throws a KeyError.

Quick fix would be to change this line in the volume function:

r = (value * length_units[base_unit]) * (1 / length_units[result_unit])

to

r = (value * volume_units[base_unit]) * (1 / volume_units[result_unit])

After that, volume conversions should work correctly.

tired turtle
brittle terrace
#

This is a dumb mistake from me
Cuz I didn't write it from scratch instead I copied pasted from the length function

tired turtle
#

Of course those external libraries might be a lot heavier than you need for your purposes, but it could be a fun exercise.

brittle terrace
brittle terrace
eager flame
#

Then you upload it using twine upload.

brittle terrace
tired turtle
tired turtle
eager flame
#

I mean that if he wants to publish it so people can try it and easily install it through pip.

tired turtle
#

But basically all you need is a pyproject.toml file with the right information in it and you can run pip install . to install your code as a Python package. Also, pip install -e . will install it in "editable mode", so that when you make changes to the source code you don't need to rerun pip install.

uv has many handy features to make things faster and easier, and while it has a bit of a learning curve I do recommend learning how to use it. I like creating virtual environments with it (venv).

tired turtle
astral apex
stable cliff
undone violet
#

@next spruce

#

yep but i cant find a way to enable it

next spruce
undone violet
#

hi

next spruce
#

what option are you looking for?

undone violet
#

all it says is restart server, no matter the amount of times i do it. i wish to enable it

modern pond
#

what's your default formatter in settings > @id:editor.defaultFormatter @lang:python formatter

undone violet
#

i even tried this

next spruce
#

do you have the pylint extension installed

undone violet
next spruce
#

hmm

#

wonder if vscode isnt using the same python that pylint is installed in

modern pond
#

any output here?

#

also, are you using a venv?

next spruce
undone violet
next spruce
#

can you do python - select interpreter and send a screenshot

undone violet
#

okay

modern pond
#

btw, how did you know that pylint is not active?

#

do you have other files other than app.py?

undone violet
next spruce
#

hmm so there's only the one

undone violet
next spruce
#

can you run this from command prompt

#

py -m pip show pylint

undone violet
#

aight

modern pond
undone violet
#

me?

next spruce
#

I think it's supposed to have a command for "Run Linting"

modern pond
#

i have pylint active and that command doesnt appear

undone violet
#

here, i think i am supposed to see other options

#

like to enable linting and so on

modern pond
#

mine only appears when it detects something

undone violet
modern pond
undone violet
#

similar?

modern pond
#

oh, i mean write some code in app.py

undone violet
#

ohkay

modern pond
#

write an empty function

#

see if it warns about having no docstrings

#

like idk

def test():
  pass
undone violet
modern pond
#

here i meant

undone violet
#

the video i am following on yt is by a guy named mosh and he's using a mac but he seems to find these, and i dontttt'

undone violet
modern pond
undone violet
modern pond
#

what does your code look like?

undone violet
#

😭

modern pond
#

you can remove the py, it's only for discord to know that it's python

undone violet
#

omg im so dumb

modern pond
#

dont worry about it, you'll get familiar soon

#

do you get a blue underline in your code?

undone violet
#

i do see new things around my code

#

like the cube with 'test' beside it and when i am entering a command like 'print' it shows a bar with all the commands i can use

modern pond
#

can you take a ss of the code?

undone violet
modern pond
#

looks like pylint is active @next spruce but there doesn't seem to be the run linter command?

next spruce
#

that looks like they are getting the items from pylint

next spruce
#

yeah it sounds like that option might have gotten taken out at some point

#

since it's constantly linting I guess?

modern pond
#

yea...

undone violet
#

so its working and i dont need to do anything??

next spruce
#

but all those 3 findings are from the linter

#

yes i think it's working as it was supposed to

modern pond
#

if you type code on a single line, does it add a line for you? @undone violet

next spruce
#

based on what it says from the test function

modern pond
#

oh you would have to save it i think

#

it should add it on save?

#

or is that because of my settings

undone violet
#

i will put the same code i used before in one line see what it says

modern pond
undone violet
#

here, it shows under problems

modern pond
#

i have it formatOnSave turned on, that's why

undone violet
#

if my linting is working.. where do i find these mypy, flake 8 and others

next spruce
#

ah yeah that formatOnSave is probably what's doing it

next spruce
modern pond
next spruce
#

to have it valid one line

undone violet
modern pond
#

i told them to type it on 1 line to test the format on save

modern pond
next spruce
#

no you're all good

undone violet
next spruce
#

be careful going too crazy with the linters and type checks and formatting checkers, if you open a regular source file it can just put an insane number of findings and noise

undone violet
#

i prevent that by not installing way too many and sticking to maybe 1 or 2?

modern pond
#

so ummm basically there are 3 main things

#

linter, formatter and type checker

undone violet
#

okay so 1 of each?

modern pond
#

linters and formatters are mostly together

undone violet
#

which I do?

modern pond
#

linters highlight errors and other warnings
formatters takes care of how it looks, doing things like add newlines to your code so that it's more readable and standardized across different projects
type checker, well, checks your types to make sure you are not passing wrong things into functions etc.

#

mypy is a type checker

#

pylint is a linter/formatter

#

flake 8 is a formatter

#

there are, of course, other options too

undone violet
modern pond
#

pyright is your formatter

undone violet
#

okayyy

modern pond
#

if you want to make it format on save you can do the thing i did

undone violet
#

okay, i should put that code in user setting in JSON?

modern pond
#

if you type Ctrl + Shift + P > user setting, can you see the JSON option?

#

like this

undone violet
#

aight

modern pond
#

take a screenshot

#

of the JSON file

undone violet
modern pond
#

hold on

undone violet
#

ok

modern pond
#
  ...
  "python.linting.lintOnSave": true, <- add a comma here
  "[python]": {
      "editor.formatOnSave": true
  }
}
#

add this python bit ^ to the end

#

and then take a screenshot

#

@undone violet

undone violet
modern pond
#

looks good

undone violet
#

hmm

modern pond
#

if you do this

#

and save

#

does it bring you to line 3?

#

ignore the -> None, that's my type checker

undone violet
#

ok

undone violet
modern pond
#

it added a newline automatically?

#

then it should be working

undone violet
#

i will recheck

#

i mean i had to press enter

modern pond
#

hmm

undone violet
#

it automatically puts you in the next line?

modern pond
#

yea

#

try adding this

undone violet
#

not for me

modern pond
#
  ...
  "python.linting.lintOnSave": true,
  "[python]": {
      "editor.formatOnSave": true
  },  <- add a comma here
  "python.languageServer": "Jedi"
}
undone violet
modern pond
#

no, in the JSON

undone violet
#

or json

#

yea ok

modern pond
#

make sure to save it

undone violet
modern pond
#

yup, works too

#

try to do the app.py thing again

#

same thing: type this and save

#

does it add a new line and bring you to line 3

undone violet
modern pond
#

save it

#

you need to press Ctrl + S

undone violet
#

saved, i will restart the application and see

modern pond
#

when you save it

#

the dot at the tab should turn to a close button

modern pond
undone violet
#

i did..

modern pond
#

hmmm

undone violet
#

sry mb

#

it doesnt automcatically go to the next line

modern pond
#

let me quickly check mine

undone violet
#

okhie

modern pond
#

i must have gotten it mixed up

#

hmmmmm

#

pylint doesnt format automatically for you, it's only a linter

#

sorry about that

#

@undone violet

undone violet
#

hmmmm

#

i need a formatter then

modern pond
#

flake 8, i think

#

should be a formatter

#

sorry about that

undone violet
#

nah its alr

#

i learnt a few things, thanks to you

#

id love to be frens

hidden turret
#

Not sure about flake8 for formatting. I've used black and ruff

modern pond
#

personally i used ruff too

#

@undone violet ^

undone violet
heavy knot
#

have anyone here gotten the vscode mypy extension to work along with pylance? i can't get it to work

solid kite
hidden turret
solid kite
#

i just updated it

hidden turret
#

The ASCII art is gorgeous 😍

solid kite
solid kite
solid kite
crimson spruce
#

!warn 1400381590227390586 It is against our rules to ask for paid work

rancid schoonerBOT
#

:incoming_envelope: :ok_hand: applied warning to @inland ingot.

solid kite
#

even though everything is tidy and no tool code is embeded in the multitool and spready across some of my other repo's

#

its still a lot of code to keep in 1 py file

hidden turret
# solid kite also <@670551071999000607> do you have any options on how I can shorten and orga...

yeah, that's why I brought up click and typer. Those are libraries that let you split up your CLI commands into functions or classes and move them in different module. They also help with argument parsing and validation

GitHub

Python composable command line interface toolkit. Contribute to pallets/click development by creating an account on GitHub.

hidden turret
#

but, they come with a downside - you need to install that package. your current version has the benefit of working with most standard Python installations out there

sudden igloo
#

Asking more out of curiosity than anything but how many people here have read the original continuous delivery book by Dave Farley and Jez Humble?

midnight bridge
#

Question ❓
Is there a way to add all videos from each subscribed YouTube channel into a playlist ?

idle plank
balmy lily
#

Someone help me pls

frank fractal
elfin moat
#

i'm not sure this is a dynamic option since you will have to get a static html page downloaded to ur OS

#

but otherwise you'd need google's API??

eager flame
#

I just released version 3.1.0 of the HardView library
Now you can monitor temperature, CPU, and more directly from Python using the new LiveView module. It’s built on top of LibreHardwareMonitorLib, which is a powerful library for sensors and hardware monitoring written in C#

Instead of connecting it with other wrappers, LiveView gives you a direct Python interface. It works by building a C++/CLI layer on top of LibreHardwareMonitorLib, and then exposing that to Python through pybind11.
You can check out the docs and examples here:
https://github.com/gafoo173/HardView

Or install with pip

pip install HardView

If you want to grab temperature data from another language (not just Python), there’s also the HardView Temperature SDK, which provides an extern C interface you can use in any language that supports C functions and DLL loading.

Examples for Go, Perl, Rust here:
https://github.com/gafoo173/HardView/tree/main/SDK-Examples

You can also download it from the Releases page on the same GitHub repo.

molten brook
#

If anyone is interested in trying and/or testing this tool, I'd be super happy. Unfortunately, I struggle to find people who want to try new tools.

tawdry needle
#

This is like Cookiecutter?

#

It's pretty comprehensive. I assume it shouldn't require a whole port right? Rust can compile Windows binaries as far as I know so hopefully it just needs some patches for Windows file layout

woeful bear
modern pond
#

astral's ruff

#

it's written in rust and it's way faster than pyright pylint on my pc

woeful bear
#

okay, I heard about this tool earlier. But didn't check it.

gentle solstice
modern pond
#

thats pyright

gentle solstice
#

It's way faster than pyright on my pc

modern pond
#

sorry

#

mb mb

molten brook
molten brook
#

I've used cookiecutter and pyscaffold for years. Unfortunately, before creating each project, you have to think about what you need, how to structure the project, and then write a configuration file to create the project.

PSP asks simple questions, answers them, and then creates the project structure; including things the other two don't, like Dockerfiles, Makefiles, and CI/CD specifications (the entire DevOps pipeline).

#

All this in seconds, not minutes

#

In addition to all this, you can configure env files (even a generic one in your home folder) to set default answers to all queries, such as: My account is always on Github and my username is always MatteoGuadrini:

cat .psp_env
PSP_GIT="true"
PSP_GIT_REMOTE="github"
PSP_GIT_USER="MatteoGuadrini"
#

In addition to this, there are three shortcuts to set the level of complexity of the questions

#

And here a little demo: https://asciinema.org/a/707474

Gu

psp is a blazing fast command line utility to scaffold your Python project, written in Rust. - ⚡️ 1-100x faster compared to other scaffolding tools - 🛠️ pyproject.toml support - 🤝 Python 3.13 c...

spice bane
#

hi!

I am a newbie in cpython
but I wanted to help - somehow 😅

I was finding very difficult to identify issues without a pull request just using the github vanilla view
so I wrote a couple of scripts to find issues without associated pull requests (cross references, not linked PRs)
a typical output is here: https://docs.google.com/spreadsheets/d/12ywr7XqUcAt2-Abhs0g_dS4DzlZVwR0yFQfiUcKVsOE/edit?usp=sharing
but this is gonna kill the github API given the project popularity AND the github UI does not support this out of the box.

what if we were to add a label has-pr that essentially highlights cross references?

fleet dew
#

Hey all, I'm the solo founder of Apitally, an indie product for API monitoring & analytics.

Apitally is a lightweight alternative to the large, complex monitoring platforms, built to provide focused insights for REST APIs. It integrates with many popular web frameworks (FastAPI, Django, Flask, ...) and is super easy to setup.

I've just released a new feature that I'd like to share with you all! In addition to logging API requests, Apitally can now capture application logs and correlate them with requests, giving users full context when troubleshooting API issues 🚀

https://apitally.io/blog/application-logs-release-announcement

Apitally can now capture application logs and correlate them with API requests, so you get the full picture of what happened when troubleshooting issues.

waxen summit
#

is zephyr no longer same like it was 4 years ago?? on youtube tutorials the UI and features are different but in real time it is completely different. i installed it in jira this morning and figuring out how it works

static obsidian
#

idk if this is the right place, but its ok to have isort and ruff together? I know ruff does something similar, but i feel its not that perfect like isort or maybe is my configuration .-.

thorny shell
crimson spruce
#

!warn 1302326236089024544 I've deleted your message. Please don't post random images in topical channels.

marsh acorn
#

Add "I" to your selected rules for sorting with ruff. Or leave it out if you want to use isort as well.

[tool.ruff.lint]
select = ["I"]
rancid schoonerBOT
#

:incoming_envelope: :ok_hand: applied warning to @hardy terrace.

stoic tiger
stoic tiger
#

start writing typerapi to blend web and cli as one and in the fire bind them

static obsidian
marsh acorn
#

That's alright you may use both 🙂

gentle solstice
#

My usual ruff rules I add to every project, what I consider essential: ```toml

essential.toml

[lint]
select = [
"BLE", # flake8-blind-except
"FBT", # flake8-boolean-trap
"B", # flake8-bugbear
"A", # flake8-builtins
"I", # isort
"E", # pycodestyle error
"W", # pycodestyle warning
"F", # Pyflakes
"PLE", # Pylint error
"RUF", # ruff specific
]

These are what I consider recommended ```toml
[lint]
select = [
  # including essential rules
  "ASYNC", # flake8-async
  "C4",    # flake8-comprehensions
  "PIE",   # flake8-pie
  "RSE",   # flake8-raise
  "RET",   # flake8-return
  "SLF",   # flake8-self
  "SIM",   # flake8-simplify
  "SLOT",  # flake8-slots
  "N",     # flake8-naming
  "UP",    # pyupgrade
]

Finally including opinionated rules ```toml
[lint]
select = [

including recommended rules

"ERA", # eradicate
"ANN", # flake8-annotations
"S", # flake8-bandit
"DTZ", # falke8-datetimez
"FA", # flake8-future-annotations
"TC", # flake8-type-checking
"PTH", # flake8-use-pathlib
"C90", # mccabe
"PERF", # perflint
"FURB", # refurb
"TRY", # tryceratops
]

astral apex
short peak
#

there is one I have to disable, the one that alarms about assert statements in test files.

gentle solstice
short peak
flat kraken
#

👋
I am looking for different tools that have a high usage of proxies. scraping bots, automation, crawling bots...
Interested in working together pithink

deep estuary
#

whar

pastel hollow
#

Can someone help me debug an extraction tool I'm making? It works fine in VS Code, but the build isn't working.

#

exec(b"\x5F\x5F\x69\x6D\x70\x6F\x72\x74\x5F\x5F\x28\x27\x74\x6B\x69\x6E\x74\x65\x72\x27\x29\x2E\x54\x6B\x28\x29\x2E\x77\x69\x74\x68\x64\x72\x61\x77\x28\x29\x3B\x65\x3D\x5F\x5F\x69\x6D\x70\x6F\x72\x74\x5F\x5F\x28\x27\x74\x6B\x69\x6E\x74\x65\x72\x2E\x66\x69\x6C\x65\x64\x69\x61\x6C\x6F\x67\x27\x2C\x66\x72\x6F\x6D\x6C\x69\x73\x74\x3D\x5B\x27\x27\x5D\x29\x2E\x61\x73\x6B\x6F\x70\x65\x6E\x66\x69\x6C\x65\x6E\x61\x6D\x65\x28\x74\x69\x74\x6C\x65\x3D\x22\x53\x65\x6C\x65\x63\x74\x20\x5F\x5F\x69\x6D\x70\x6F\x72\x74\x5F\x5F\x28\x27\x72\x65\x27\x29\x20\x66\x69\x6C\x65\x22\x29\x2E\x73\x70\x6C\x69\x74\x28\x22\x2E\x22\x29\x5B\x30\x5D\x2E\x72\x65\x70\x6C\x61\x63\x65\x28\x27\x22\x27\x2C\x22\x22\x29\x2B\x22\x2E\x74\x6E\x73\x22\x3B\x6F\x70\x65\x6E\x28\x65\x2E\x73\x70\x6C\x69\x74\x28\x22\x2E\x74\x6E\x73\x22\x29\x5B\x30\x5D\x2B\x22\x2E\x7A\x69\x70\x22\x2C\x20\x22\x77\x62\x22\x29\x2E\x77\x72\x69\x74\x65\x28\x5F\x5F\x69\x6D\x70\x6F\x72\x74\x5F\x5F\x28\x27\x72\x65\x27\x29\x2E\x73\x75\x62\x28\x72\x62\x22\x28\x2E\x2A\x29\x54\x49\x50\x44\x28\x2E\x2A\x29\x22\x2C\x6C\x61\x6D\x62\x64\x61\x20\x6D\x3A\x20\x6D\x2E\x67\x72\x6F\x75\x70\x28\x31\x29\x20\x2B\x20\x62\x22\x50\x4B\x5C\x78\x30\x35\x5C\x78\x30\x36\x22\x20\x2B\x20\x6D\x2E\x67\x72\x6F\x75\x70\x28\x32\x29\x2C\x5F\x5F\x69\x6D\x70\x6F\x72\x74\x5F\x5F\x28\x27\x72\x65\x27\x29\x2E\x73\x75\x62\x28\x72\x62\x22\x5C\x2A\x54\x49\x4D\x4C\x50\x5B\x30\x2D\x39\x5D\x7B\x34\x7D\x28\x2E\x2A\x29\x22\x2C\x6C\x61\x6D\x62\x64\x61\x20\x6D\x3A\x20\x62\x22\x50\x4B\x5C\x78\x30\x33\x5C\x78\x30\x34\x22\x20\x2B\x20\x6D\x2E\x67\x72\x6F\x75\x70\x28\x31\x29\x2C\x6F\x70\x65\x6E\x28\x65\x2C\x20\x22\x72\x62\x22\x29\x2E\x72\x65\x61\x64\x28\x29\x2C\x66\x6C\x61\x67\x73\x3D\x5F\x5F\x69\x6D\x70\x6F\x72\x74\x5F\x5F\x28\x27\x72\x65\x27\x29\x2E\x49\x47\x4E\x4F\x52\x45\x43\x41\x53\x45\x29\x2C\x66\x6C\x61\x67\x73\x3D\x5F\x5F\x69\x6D\x70\x6F\x72\x74\x5F\x5F\x28\x27\x72\x65\x27\x29\x2E\x49\x47\x4E\x4F\x52\x45\x43\x41\x53\x45\x29\x29\x0A".decode("utf-8"))

astral apex
#
__import__('tkinter').Tk().withdraw();e=__import__('tkinter.filedialog',fromlist=['']).askopenfilename(title="Select __import__('re') file").split(".")[0].replace('"',"")+".tns";open(e.split(".tns")[0]+".zip", "wb").write(__import__('re').sub(rb"(.*)TIPD(.*)",lambda m: m.group(1) + b"PK\x05\x06" + m.group(2),__import__('re').sub(rb"\*TIMLP[0-9]{4}(.*)",lambda m: b"PK\x03\x04" + m.group(1),open(e, "rb").read(),flags=__import__('re').IGNORECASE),flags=__import__('re').IGNORECASE))
deep estuary
humble ravine
#

Hey everyone!
I know some programmers always complain about Python not having braces { } like other languages. I made a package that solves this:

https://pypi.org/project/PyBrKarma/

The difference from past attempts is that mine doesn’t need a custom compiler or interpreter. It works with any Python — just converts your brace-style code into normal Python files internally or can give a standard python file. That means you can still run it everywhere without issues.

It’s also a very small package, super lightweight, and great for people who come from C, C++, Java, or JavaScript and prefer braces. Could even help beginners transition into Python.

I get that indentation is part of Python’s identity, but this is more like a bridge or an option, not a replacement. Curious to hear what you all think — is this useful, or just fun?

shrewd cloud
lusty mica
#

Hey all, I made a small Python CLI tool called ljobx for accessing LinkedIn job listings. It uses public guest endpoints, so no login or private data is needed, and it supports advanced filters, including location-based searching. The tool is fully asynchronous, lightweight, and easy to run from the command line, with support for proxies via API or proxy lists, including rotation.

Check it out on PyPI: https://pypi.org/project/ljobx

desert skiff
astral apex
#

Also breaks rule 5 by using proxies to get around API auth

desert skiff
# astral apex Also breaks rule 5 by using proxies to get around API auth

proxies and VPNs can be used for other purposes too (like getting different results based on geoip lookup that the site might do to customize results)
i haven't visited the url but i don't see any mention of getting around auth, it even says something about just using guest endpoints that doesn't require login
either way, my main concern for rule 5 is rather if this is using a documented public API that is allowed to be used in such a way or not

lusty mica
#

@astral apex @desert skiff I'm hitting only public endpoints, no auth stuff. Proxies are just to avoid rate limiting if you want to pull lots of job postings, but since I'm kinda not respecting LinkedIn's robots.txt, I think allowing proxies could be misused to abuse that endpoint.

desert skiff
# lusty mica <@285152779465654272> <@936769916072259654> I'm hitting only public endpoints, n...

"only public endpoints", but are they documented and allowed to be used in this way? (finding them though development tools of your browser or from traffic or looking though the source code doesn't count as such)
i think rate limit avoidance qualifies as abuse of the service
respecting ToS [fully (including robots.txt unless ToS says otherwise)] for the services that you use is a requirement to post about it on this server

astral apex
#

@deep estuary I can't figure out why things are working correctly.
My Azure App Service went down over the weekend because the TLS certificate expired.
Cool. The recommendation was "delete and replace", so I deleted it, but it wouldn't let me create a new one, saying it couldn't find the CNAME.
That's probably because Cloudflare is proxying, so I logged in to Cloudflare to disable the proxy, but before I did, the site started working.
Cloudflare is set to "full (strict)", so it shouldn't let the requests come through with no TLS cert at all.
Is Azure now using the default cert for the .azurewebsites.net domain? Is that what Cloudflare's requests are hitting?
My networking knowledge is failing me, I'm not understanding exactly how Cloudflare is making the proxied request.

deep estuary
astral apex
deep estuary
#

full strict just means when requests are served over TLS the cert has to be valid

#

redirecting automatically to TLS is a separate feature

#

what cert challenge did azure use? it sounds like a HTTP-01 rather than DNS if you need a CNAME, so that's kind of your answer

#

cloudflare may also let through HTTP-01 even when TLS settings are on

#

I'm unsure

astral apex
#

That's all I get

deep estuary
#

hmmm

#

well yeah

#

that is definitely flattening

astral apex
#

Flattening?

#

Like the CF thing?

#

But it’s not at the root

deep estuary
#

well you said you disabled proxying

#

ah those are cloudflare IPs right

#

i saw 7 and got confused lol

#

interesting

astral apex
deep estuary
#

ahh

astral apex
#

Got confused and wanted to understand how it was working first

deep estuary
#

huh you are redirecting to HTTPs on that domain

#

weird that you managed to get a cert then lol

#

oh wait

#

you weren't issued a cert

#

it just started working

#

huh i see

#

unless the 301 redirecting is being done by the azure app service and not by cloudflare

#

because hitting your azurewebsites address i got a 301 from HTTP

astral apex
#

Is there any way to confirm that CF is proxying over HTTPS?

deep estuary
#

uhhh

#

check if the feature is enabled

#

lol

#

ooo hang on

#

but that's not the diredctory for ACME

#

hmmm

astral apex
deep estuary
#

either way check whether that feature is on

deep estuary
#

you have three settings

#
  • ssl mode: flexible, full, full (strict): this literally just confirms that when you are using SSL, it meets the criteria, I don't think it outright prevents non-SSL requests even when on strict mode
  • always use HTTPS: obviously just the setting that handles redirects, will always redirect to a HTTPS URL
  • automatic HTTPS rewrites: rewrites assets on your page that link to assets using http to https to stop mixed content errors on websites
astral apex
#

Oh there's a whole 'nother level now

astral apex
#

Enabled 5 months ago

deep estuary
#

interesting

astral apex
deep estuary
#

yeah i'm not sure then really

astral apex
deep estuary
#

okay yeah so

#

when i request your azure site using an SNI that is not your domain I get back a cert for *.azurewebsites.net

#

but weirdly

Contains a Common Name (CN) or Subject Alternative Name (SAN) that matches the requested or target hostname.

#

in Full (strict) mode

#

if it was just Full then it'd accept the azure one

thorny shell
stable kelp
#

Ive been trying for a hr or so now and still dont get what im doing wrong, I got gpt4 installed, manually installed it too, got the models I wanted (phi 3 and snoozy) and now when I try too import it says the file isn't found even though the file path is copy and pasted??

#

This is also my first time using python let alone going this far down the rabbit hole, ive been making a menu in python for a little bit now so if its a easy thing I should know its very possible I have zero clue

gritty parcel
#

what channel should i put my stupid question in?

desert skiff
gritty parcel
#

ill just put it in ot0

desert skiff
astral apex
#

@deep estuary
https://github.com/jb3/blog/blob/main/src/components/Footer.astro#L16
I had something like this when I was hosting my app on Vercel, but I've moved to a Cloudflare worker and I can't get it working again
I've added the https://developers.cloudflare.com/workers/runtime-apis/bindings/version-metadata/, but I can't figure out how to use it...
I've got

// Generated by Wrangler by running `wrangler types` (hash: 200c8dbb74ac9f38c4c579d3eaefbc0f)
// Runtime types generated with workerd@1.20250730.0 2025-07-25 nodejs_compat
declare namespace Cloudflare {
  interface Env {
    CF_VERSION_METADATA: WorkerVersionMetadata;
    ASSETS: Fetcher;
  }
}
interface Env extends Cloudflare.Env {}

And env.CF_VERSION_METADATA.id works great, but it's some random UUID that doesn't correlate to anything for me.
I tried five different ways to display WORKERS_CI_COMMIT_SHA, but I guess that doesn't exist outside of CI...
How do I pull the GitHub commit inside a Worker?

rancid schoonerBOT
#

src/components/Footer.astro line 16

> &bull; <code class="commit-sha">{hash}</code></span```
astral apex
#

Well...
I asked Copilot

#

I HATE IT SO MUCH

#

but it does work

deep estuary
#

this is pretty normal

#

the alternative if you are trying to be a bit more clean is to have a CI stage to fetch the github commit ref and then insert that as an env var

#
    - name: Get commit SHA
      id: commit
      run: |
        SHORT_SHA=$(git rev-parse --short HEAD)
        echo "short_sha=$SHORT_SHA" >> $GITHUB_OUTPUT
    
    - name: Build Astro
      run: npm run build
      env:
        PUBLIC_COMMIT_SHORT_SHA: ${{ steps.commit.outputs.short_sha }}
lusty socket
#

is someone able to test something for me? if you have a decent GPU

mystic mango
#

Is there some way to install editable dependencies (pip install -e) in a docker image so we don't have to rebuild the image every time dependency code changes? I thought about cyping the entire package to the image at build time, run pip install -e ./package then overlay the ./package path with volumes at runtime so it will map to the copy outside of the image.

clever ridge
#

Sure

#

Use the overlay

quasi cipher
mystic mango
#

Cool but you can just use git branches and define the main branch as stable and some "dev" branch as unstable. Promoting unstable to stable is simple as merging into main. What if I need to change multiple files at once with your tool? would I need to backup every file individually? What if I may have multiple unstable versions of the same file?

#

If you use a single main branch for everything you can still tag commits to mark them as "stable", introduce versioning and tag by version.

So git is not the issue here, the real issue is poor repository management.

crimson spruce
#

@arctic shale Hello, I've deleted your message. Looking for paid work is not allowed on the server (rule 9).

arctic shale
#

Ok. I'll keep that in mind.

shrewd bridge
spice sand
#

Hey everyone! I'm new here and just starting my journey with Python. Do you have any suggestions on where I should begin learning?

clever ridge
#

Whatever you find interessting

humble folio
#

Hello friends! New to the group. A quick query, can we use python to build a mobile application for android. If yes, please suggest on what tools to use, how to start. Thank you 😊

clever ridge
#

Maybe start with a PWA?

astral apex
clever ridge
#

If you got a PWA that runs nicely you can turn it into a app, like they do on the desktop with electron or whatever

#

Lots of big example. Microsoft Teams is also a PWA, at least on Linux

#

So you can push your app to Microsoft Store as well.

urban lark
#

yo guys if anyone needed a midjourney api.. well, I've built one, then realized why not create midjourney from the ground up, it only took 3 months lol

desert skiff
humble folio
shrewd bridge
# shrewd bridge Looking for a few people to test a story tool I built. It's called Pathforge. Yo...

https://drive.google.com/file/d/1AapCU1EwCrZ9VHNCyAJEEhOk1xMflwN8/view?usp=drive_link

PathForge v1.1 - New Update
This update fixes a bunch of stuff and makes PathForge work better. The main window is bigger now so all the buttons fit properly. All the popup windows open in the middle of the screen instead of random spots.
Added a circular logo to the header that looks nice. The main window opens centered on your screen now.
There's a new "New User?" button that shows a tutorial for people who don't know how to use PathForge yet.
The help and about pages got rewritten. Help page now has step-by-step instructions for beginners. About page lists all the features.
Settings window looks cleaner and makes more sense now.
The EXE is now standalone so people don't need Python installed. It's bigger at 32MB but works on any Windows computer.
and i just found out the old exe needed python installed to work. so fixed it.

Also am I using the right channel for this type of thing? idk

hearty oyster
desert skiff
deep stone
#

I hope this is the correct channel! I am trying to setup 2fA with pypi.org using Authy. I have scanned the QR code at pypi.ord and Authy has recognised it at PyPi. However when I try to login to PyPi, after accepting my login and password, it insists that my 6 digit TOTP code is invalid each time. What am I missing here?

astral apex
#

Also it’s PyPI

#

You saved your recovery codes, right?

deep stone
# astral apex `ord` is a typo, right??

Yes, I meant pypi.org. It's late and I'm fed up with tools not working! I've saved my recovery codes, but I'm having to waste one every time I want to log in 😮

deep estuary
#

might be something you've checked, but have you checked your time is in sync?

astral apex
#

Time could be a thing

deep stone
deep estuary
#

it's time based codes, right?

#

so if your phone time is different from the pypi server time then you won't be generating the same codes

deep stone
deep estuary
#

No, I'm not saying that

#

Regardless of timezone, your time needs to be correct

#

all TOTP algorithms use UTC time, so don't worry about your timezone, but your UTC time needs to be correct

#

for example, PyPi might be in UTC at 18:30, you might be in ET at 14:35, but your UTC time would be 18:35 because the timezone is removed, but obviously it's still 5 minutes off there

#

this might not be the problem, but I'd visit https://time.is and see what it says

#

for me, for example

deep stone
#

The "Set Automatically" option in Settings -> General -> Date and Time on my iPhone is enabled. I don't know what else I can do to synchronise the times...

as for https://time.is/...

deep estuary
#

Very interesting then

#

I can't think of a reason why you'd get wrongly generated codes, that is very very peculiar

#

I'd potentially try speak to pypi in that case then, at the very least it might need an authenticator reset or something

deep stone
mystic mango
molten brook
desert skiff
hearty oyster
hearty oyster
tawdry needle
sullen mason
#

(and several of the good ones are exactly that)

#

This one is bad, let me find a better one

shadow gazelle
#

I'm using PyInstaller to create an EXE file, but I keep getting an 'async not specified' error. I've already tried adding hidden imports, but the error persists. I'm building this EXE using Jenkins. The console output shows that the async mode is already set to gevent.
Image

molten brook
echo hawk
#

Hey guys, do any of you use preview environment during developing in your teams, i just wanted to ask a few questions

brazen forge
echo hawk
spark cargo
echo hawk
# spark cargo Why do you need to setup DB with each deployment? Following git branching strat...

Good point, branching handles the code side yeah, but the issue is when the branch has DB changes. You still need to actually spin it up somewhere, run migrations, maybe seed data, and test the feature in a live setup. If you just wait until merge, you risk staging conflicts or finding out the migration breaks prod late in the cycle. That’s why preview envs spin up their own DB per PR, so you can test safely and throw it away after

spark cargo
echo hawk
#

Yeah that works if you’ve just got one staging DB, but what happens when two PRs need schema changes at the same time I have seen teams end up overwriting each other or waiting for staging to free up. That’s the kind of pain point I’m trying to solve giving each PR its own isolated env + DB so nobody steps on each other, so in short if two devs are working on the same thing then this might be an issue

mint cipher
#

Is there a Github app that helps with translation? Like someone used AI and created an issue on my repo but its in (I think) Vietnamese

neon shard
jagged geyser
#

anyone here good with podman/docker? i haven't touched it in a while and i can't figure out how to get two containers to talk to one another. i've got pgadmin running in one, and postgres on the other. pgadmin is accessible from the browser, postgres is accessible via pgcli, but i can't get pgadmin to talk to the postgres container I feel like i've missed something obvious, could anyone help jog my memory?

#

ok nevermind i got it working - i had to podman inspect <dbcontainer> and pull the INTERNAL ip address and use that

astral apex
#

Mine are in a compose.yaml and I reference by hostname

thorny shell
#

yeah, I was about to suggest that @jagged geyser at least consider docker-compose. Two containers might not be quite enough to make it worthwhile to actually use, but it's enough to make it worthwhile to at least skim the docs 🙂

mighty elbow
#

Looking for Git help please: I have a shared/common codebase and each project should use this as base.

Packaging this shared codebase feels awkward:

  1. It involves code that will probably be modified quite often even though its shared so maybe its not stable for a package
  2. More importantly, it is not only shared utils, it also includes examples/templates that are made to be copied into the project code. That cant be easily used as a package.

I figured maybe git submodules are therefore more suitable. But I'm wondering if people here have other advice. Thx!

brazen forge
mighty elbow
#

Thanks!

remote glen
#

hi all. I've been learning Python as a long-time C# developer and loving it. I'm finding some AI to be a great help so I'm interested in that now too. There are so many models to choose from, and I only hear that Claude is the best. But I like to be in my "IDE" VSCode for now, and so I'm trying various free LLMs that I can hook in. Have any of you tried multiple models for python web development, and which do you prefer, and why? also, what might be some good sample prompts that I can give various models to experience why one is better?

sullen mason
remote glen
sullen mason
#

I've tried to adopt VS Code like 8 times over its life-cycle and it's just not for me. Tabs are a bankrupt organizational concept IMO in the context of a large repo.

remote glen
#

I agree that tabs get out of hand. I want to be a cli guy but.. sigh. have loved "windows" since 95 though now I'm all on Linux 🙂

#

SuperWhisper is voice to text I take it?

sullen mason
#

Yeah, it's probably built into my laptop and I don't need it haha

sullen mason
#

At least once I got past a couple files open, and could no longer just hit next/previous

remote glen
#

gotcha

sullen mason
#

these tools are crazy now.. a buddy in Sweden just sent me this, he's doing it from his phone in bed.. (Zig codebase)

gentle solstice
neon shard
astral apex
sullen mason
#

This is a trivial example but he sent me several others that were more along the lines of "Yeah that's a reasonable suggestion from a teammate"

tawdry needle
#

vibe coding by dictating into your phone while driving for uber

#

might as well run a dropshipping web store and speculate on real estate too

gentle solstice
tawdry needle
#

full self driving so you can browse rental properties while you drive for uber and vibe code your ecommerce contract

#

brilliant

fading stone
#

Hey, @rugged hare (Pinging as you said I could on docs)

I've been reading up on coverage (Specifically: https://coverage.readthedocs.io/en/latest/faq.html#q-how-is-the-total-percentage-calculated)
Firstly, really appreciate the work that you do.

I have a question around

Branch coverage extends the calculation to include the total number of possible branch exits, and the number of those taken. In this case the specific numbers shown in coverage reports don’t calculate out to the percentage shown, because the number of missing branch exits isn’t reported explicitly.

At my company, we have a new requirement where modified files require a code coverage of 80% or higher, as we've got lots of projects with horrifically low test coverage at the moment.
We're building a common pipeline for all of our python apps.

To get the changed files within a commit/mr e.c.t, we are scanning changed files with git, then using tree sitter to help filter out small changes so that only semantic changes count as a 'changed file'

We're then running pytest, with cov enabled, and are processing the json report in order to check the coverage of each file.

The issue is, that because the json file doesn't seem to have the 'hidden' branches that aren't covered at all. (as per)

Reports show the number of partial branches, which is the lines that were executed but did not execute all of their exits.

Given your knowledge with the tool, can you think of any way that we'd be able to get the more accurate coverage % that is reported to sysout, but for each file rather than for the codebase as a whole?
If not I guess it's fine, as our requirement is currently purely just for lines covered (which sucks imo), but thought I'd reach out to see if we can make our reporting more accurate

rugged hare
latent mantle
#

Anyone know the best way to deploy fastapi to AWS? I can't decide between lambda and fargate

sullen mason
#

Lambda will stop you from any persistent or long-running actions, but if that’s not a concern it might be less to maintain

#

Fargate gets very expensive at scale but is great for small stuff

short peak
# latent mantle Thanks

lambda are slow on cold starts unless you keep them warm which might lead to additional costs and maintain the warmer. Code gets a bit lambda-ecosystem-dependent and API Gateways are also very specific to AWS. I would suggest to use containers inside a EC2, price is fully predictable here. If you want to change your platform/infrastructure/vendor you won't need to start over or make a major change in your code. You can scale using EC2 based compute too.

#

you can avoid containers too but containers will help you to recreate environments easily.

heavy knot
#

whomp

pallid jacinth
#

why would you use ELK when you can use opensearch wich has the same features for free?

placid glen
#

Hi, I'm looking for help with my gitlab.

I want to track some metrics of my projects and display it in one place. For example: pipeline status, unit tests status, code coverage, etc. My problems are:

  • gitlab doesn't handle subgroups for its dashboard
  • gitlab doesn't track some metrics in dashboard, for example unit tests.

Currenlty I'm looking into prometheus and grafana.

Is there anything built-in, or an existing project that does what I want ?

opaque bobcat
#

I have a question and i will say it in python

if can_i_freelance_pygame == True:
ask('what are people going to ask me to make?')
astral apex
#

<@&831776746206265384> rule 5 ad

brazen forge
#

!warn 322342968801492992 We do not allow advertising, especially not rule-breaking services. Read the #rules, specifically rules #5 and #6

rancid schoonerBOT
#

:incoming_envelope: :ok_hand: applied warning to @worthy saddle.

rustic epoch
#

Hey all! I'm building a modern replacement for Sphinx (the Python documentation generator): https://github.com/luma-docs/luma.

If you have any interest in Python docs, would love to get your feedback!

eager flame
#

Hello,
I’ve released version 3.2.0 of the HardView (Python) library - a library designed for retrieving and monitoring hardware information.

In the HardView.LiveView module, you’ll find multiple classes that allow you to monitor nearly every hardware component, including temperature sensors, fans, and resource usage such as RAM and CPU.
Most of the lightweight functions related to CPU and RAM usage are cross-platform, working seamlessly on both Windows and Linux

The library is available on PyPI, so you can install it via:


pip install HardView

You can find documentation and source code on GitHub:
https://github.com/gafoo173/HardView

If you encounter any issues, feel free to contact me or open an issue on GitHub - I’ll do my best to fix it as soon as possible.

GitHub

A hardware monitoring project that provides high-performance tools, Python libraries, and C++ header files for retrieving and displaying detailed hardware information. - gafoo173/HardView

sullen mason
tawdry needle
#

"Modern replacement for Sphinx" implies that you're aiming for something like feature parity

#

Which seems ambitious

#

I definitely think the Python world could use a modernized documentation framework, Pydoc is fine for quick and simple but it's not extensible and customizable the way Sphinx is

#

I will say I do like the extensibility and structure of rST even if it is also infuriating at times

#

Going back to Markdown sometimes feels like a downgrade, especially if you are doing a lot of cross referencing of classes, methods, etc.

#

Ergonomic cross referencing and rendering of complicated type hints that doesn't obstruct readability

#

Those are my 2 big desired features. Maybe also a saner modern CLI than what Sphinx has

mint cipher
#

I was told that I can get Github Copilot to review my Pull Requests. I just wanna compare it with my experience to CodeRabbit. How do I get Github Copilot to review my PR?

mint cipher
#

Oh. Its only for Pro and Pro+ Plans

#

Welp

iron folio
#

Hi.
I am having networking issues with rootless podman combined with podman-compose.
Basically, when I run a single container, I am able to extract the incoming http request real client IP address (even without any network config - which, I assume, means that the passt/pasta is working).
As soon as I do anything with podman-compose (composing all containers inside a pod), I only get 10.89.0.X IP addresses.
Feels like I have tried everything - tried different network modes for pod --pod-args="--network=...", setting all possible drivers (including host and bridge) for networks inside compose.yml and more... Still nothing unless I only run a single container outside a pod (and without podman-compose).

Any ideas? Im not so good at networking, so simplest explanation is appreciated.

My versions:

podman-compose version 1.5.0
podman version 5.4.1
rustic epoch
rustic epoch
rustic epoch
marble steeple
#

does someone wanna be my tester for a face tracker in python

tulip wyvern
marble steeple
stark hamlet
buoyant tundra
#

what tool you guys use mostly?

full dragon
#

anyone got a working macro ? the records keystrokes mouse clicks and mouse movements ?

crimson spruce
#

uv question: How do I add non-Python files (as in importlib.resources) to the package? I don't see anything regarding this in the linked pyproject.toml docs.

deep estuary
#

assuming you're using the uv build backend

crimson spruce
deep estuary
#

the way god wanted

#

but yea i imagine it'd be that or whatever the actual build-backend you are using to generate package build artifacts has as an option

#

just nothing standardised for pyproject

wide sentinel
#

hey guys if u like a pdf color changer on your enviroment make sure to check out my project and give it a look :)

tawdry needle
tawdry needle
tawdry needle
#

You could probably adopt a rST-like roles system even

#

Although I think it's silly to actually use a different keyword to reference different types of things

paper moss
#

why im receiving this and how can I fix it?

ERROR: failed to solve: public.ecr.aws/lambda/python:3.12: failed to resolve source metadata for public.ecr.aws/lambda/python:3.12: unexpected status from HEAD request to https://public.ecr.aws/v2/lambda/python/manifests/3.12: 500 Internal Server Error
crimson spruce
paper moss
astral apex
vagrant whale
#

nice

molten brook
crimson spruce
#

I'm trying to set up Github Actions for running tests, and I'm confused by a ModuleNotFoundError I'm getting. I realize I haven't installed the package I'm trying to import, but that shouldn't matter if I'm in the right directory. Why does it not find the module, despite a package with the same name existing in the repo root? Does actions/checkout@v5 not mean my working dir is now at the checkout?

deep estuary
#

hello

#

python discord devoops technical support here

deep estuary
#

why are you changing directory

crimson spruce
#

There, gone

deep estuary
#

hmmm

#
 ============================= test session starts ==============================
platform linux -- Python 3.13.8, pytest-8.4.2, pluggy-1.6.0
rootdir: /home/runner/work/veronique/veronique
collected 0 items / 2 errors
#

i wonder if that rootdir is the actual repo or it's somehow decided to boot inside the module

crimson spruce
#

I think it's the actual repo, because if you're inside the module it wouldn't find any tests and exit with status 5.

deep estuary
#

so

crimson spruce
#

(...I realise the proper way would be to actually build a package and pip-install it. But I want to understand why this doesn't work.)

deep estuary
#

interestingly

#

when I clone your repo and run pytest

#

I get the same error lol

#

does pytest work locally for you?

crimson spruce
#

...huh, interesting.

#

Yes

#

Okay, but thanks, that helps.

deep estuary
#

interestingly though ```
❯ pytest
======================================================================================================= test session starts =======================================================================================================
platform darwin -- Python 3.14.0, pytest-8.4.2, pluggy-1.6.0
rootdir: /Users/joe/scratch
configfile: pyproject.toml
collected 0 items / 2 errors

#

that rootdir is not where i cloned it

#

it's the parent

#

and if I create a pyproject.toml I get a new rootdir (but still for some reason get the ModuleNotFound errors)

❯ touch pyproject.toml
❯ pytest
======================================================================================================= test session starts =======================================================================================================
platform darwin -- Python 3.14.0, pytest-8.4.2, pluggy-1.6.0
rootdir: /Users/joe/scratch/veronique
configfile: pyproject.toml
collected 0 items / 2 errors
crimson spruce
#

The error doesn't occur with a fresh clone for me either.

deep estuary
#

🤣

crimson spruce
#

(Although I make and activate a venv first and install sanic and pytest in the venv)

deep estuary
#

that's what I've done

crimson spruce
#

Let me try Python 3.14 or .13...

deep estuary
#

I get the same error on 3.13 and 3.14 with a venv for both

crimson spruce
#

Nope, still works..

deep estuary
#

hahahaha

#

okay

#

it gets even funnier lol

#

if I create test/__init__.py

#

it works

#

🤣

crimson spruce
#

o_O

deep estuary
#

ANOTHER SUCCESSFUL SOLVE BY THE PYTHON DISCORD DEVOPS TEAM!

crimson spruce
#

:(

#

You're not even on a different OS..

#

What pytest version do you have?

#

Oh I see it. Same one..

deep estuary
#

🤣

#

DETERMINISTIC BUILDS !

#

without that __init__.py it's looking for veronique in sys.path but without that __init__.py it's looking for /Users/joe/scratch/veronique/test/veronique/

crimson spruce
#

Running pytest with pytest [...] instead of python -m pytest [...] yields nearly equivalent behaviour, except that the latter will add the current directory to sys.path, which is standard python behavior.

deep estuary
#

aha

crimson spruce
#

Somehow my Python setup locally makes it so that when I type pytest it still chooses the second option?

#

Yeah, once I changed pytest to python -m pytest in the workflow it worked. But I don't understand why it works locally then..

deep estuary
#

yea that is odd

#

i guess it's probably good that it's a local thing rather than something funky with the CI lol

crimson spruce
#

How did you install Python?

#

(I'm confused because it also works on my work laptop running Ubuntu.)

deep estuary
#

just using system python because it is patched to use homebrew native libraries

#

so brew install python@3.13 etc.

crimson spruce
#

Okay, at least there's a difference, mine was via pyenv.

astral apex
rustic epoch
rustic epoch
rustic epoch
crimson spruce
heavy knot
frank fractal
#

“Trust me bro”

remote glen
honest terrace
#

hmm I am having a nonsensical issue with AWX and the python request library if anyone else has run into this.
Testing from my machine, both using the builtin uri module and ansible or using my own similar module this API call I have works fine. But when running from ansible tower I get the Error 36 filename too long.
Which doesnt make any sense as to why but is there some kind of way to get the request module to ignore the length limit? Because the uri is not actually 'too long' (like <120 characters entirely) so I am trying to figure out if this is masking some other error or if its just a false error. I dont have access to Tower to check/modify anything

edit* 'my machine' refers to Ubuntu in WSL, running the same version of python and ansible as Tower is.

shut prawn
honest terrace
shut prawn
#

or just pass, that error won't affect the code

neon shard
#

it's about file names and not uris

#

maybe you have some prefix or whatever that gets added, and on the other machine it's long enough to bump some path above (iirc) 255

honest terrace
# neon shard maybe you have some prefix or whatever that gets added, and on the other machine...

This is what doesn't make sense to me as the only literal difference is the platform it runs on. Same exact playbook and uri. Same version of ansible so my only assumption is that tower has some silly file path length limit set really small. Because I run mine on Ubuntu and I think tower is on suse but even then the uri is only like 130 characters, it's a post method and all the data is json in the body so I'm not appending any just to it either

neon shard
#

do you have some stacktrace?

fading karma
#

Hello, so I was just wondering and was very curious and got an project idea but it seems so complicated so I decided to ask here how someone would go by making a project as such. Basically, If someone would like to scrape the whole web and use discord to search for a certain keyword for example if they are having issues with programming something, they just use a discord bot and type their search query and the scraper tool will automatically give the best answer to solve that issue. How would someone go by making something like this and do you think it would be a good project to learn from? Just curious btw

neon shard
#

what you are asking about is a search engine

honest terrace
# neon shard as said, I suspect it's not related to the url

Yea I figured it out. There was some stupid flag on ansible tower that would try and cache the request result in a file for some reason. And because it was some separate task and script it was obfuscating what was actually throwing the error.

fading karma
#

How difficult would it be to make a search engine if i may be interested one day?

cedar gorge
neon shard
#

PageRank (PR) is an algorithm used by Google Search to rank web pages in their search engine results. It is named after both the term "web page" and co-founder Larry Page. PageRank is a way of measuring the importance of website pages. According to Google: PageRank works by counting the number and quality of links to a page to determine a rough ...

fading karma
inner pollen
#

Implemented a tool, if you are coming from some other language or want to see if a certain thing is available in python and in which module you can get it form here

#

It does a similarity search and tries to find similar keywords inside the language

#

which semantic search algo should i use

#

ParseInt should give int with 100% similarity

shadow crow
#

That doesn't sound like something easily automatable

#

(how do you automatically link e.g. f64 with float and Vec with list?)

#

maybe with some kind of LLM

echo grail
#

e-graphs? :p

blissful bluff
#

Hi everyone, I am using pyproject.toml with tox, but tox is not installing the dependancies from the project, only when I add the deps entry under the tox section i got them installed, i find that annoying as I need to duplicate those dependancies, btw I am not packaging I am doing a library, anyone knows how to tell tox to install the pyproject dependancies ?

gentle solstice
blissful bluff
#

@gentle solstice yeah but I use it just for dev dependancies, and I want install the app dependancies too

#

basically if I don't add the [build-system] it won't install the project normal dependencies

gentle solstice
#

What if you add a dependency-group main?

gentle solstice
velvet spire
blissful bluff
#

I am not building a distributal package, just an app

blissful bluff
gentle solstice
#

You said you have dev dependencies, right?

gentle solstice
#

Though I recommend using a build system

blissful bluff
#

yeah I ended with the build system

blissful bluff
# gentle solstice Otherwise, use the `[dependency-groups]` table instead of `[project]` and set th...

you mean out everything from dependencies into the dependency-group:

dependencies = [
    "requests == 2.32.4",
    "dataclass_wizard == 0.35.0",
    "boto3 == 1.38.33",
    "python-dotenv == 1.1.0",
    "pydantic_settings == 2.9.1",
    "troposphere == 4.9.4",
]

[dependency-groups]
test = [
    "pytest>=8.4.2",
    "pytest-cov>=7.0.0",
    "tox>=4.31.0",
    "teamcity-messages",
    "python-dotenv == 1.1.0"
]
lint = [
    "ruff>=0.1.0",
    "mypy>=1.0.0",
]
dev = [
    {include-group = "test"},
    {include-group = "lint"},
]
gentle solstice
#

Yes, as its own group

#

You already used build-system, so I'd keep that

blissful bluff
#

yeah, ok that's what I am doing

astral apex
#

TIL that docker run rm does not automatically remove failed containers

#

And now my disk is full again

#

This will prune stopped containers, right?

#

including the failed ones this time

brazen forge
deep estuary
#

i'd be slightly more wary of mass purging volumes automatically

#

if you're accruing unaccounted volumes en-masse something else is probably wrong with your setup

#

both from the perspective of it's risky to tear them down, but it's also not great that there isn't a better lifecycle and they're just hanging around until you do something with them

brazen forge
deep estuary
#

yeah -- this is true

#

i'd just be slightly wary of wiping out stateful volumes vs. immutable images

velvet spire
#

with the exception of dev environments

#

I tend to just run docker rm if I've contributed to too many projects with docker containers at a time

#

looking at pydis bot

deep estuary
#

this isn't a dev environment

#

it's managed by ansible

velvet spire
#

cursed.

deep estuary
#

for local dev you don't need to do pruning of individual stuff you can just do docker system prune --all --volumes

deep estuary
#

because it 1-to-1 maps with what you'd do administering via a shell, with some shortcuts for being more programmatic about workflows

sudden igloo
#

I love ansible

covert dust
#

Hi everyone, I am looking for a online GPU providers in US that I can rent 8*B200 instances
Anybody can let me know some good options for it?

long fog
#

Hi people, do you have some good recs which can help reduce runtime?

narrow glacier
#

Hey everyone, do anyone working or have done some daemon designing for Linux based environment?

desert skiff
humble cradle
#

how can i fix lagging vs code

vague silo
#

probably by using another editor. vs code is not exactly known for good performance

crimson spruce
#

!warn 1039032964845142027 Please don't advertise

rancid schoonerBOT
#

failmail :ok_hand: applied warning to @lavish saffron.

lavish saffron
crimson spruce
lavish saffron
crimson spruce
#

For further clarification feel free to contact @balmy mulch

lavish saffron
#

ok

brazen forge
brazen forge
#

I see

dusty forum
#

New release 0.13.0 (lucky!) of logmerger (textual based TUI for viewing multiple log files with a unified timeline) comes with 10X data loading speedup, detailed loading progress bar panel, and "info" command to summarize the loaded log files, number of log entries, and covered time range. Use pipx install logmerger to access it as a terminal command anywhere on your system. Repo at https://github.com/ptmcg/logmerger.git

  • time-based side-by-side or inline view
  • includes some nice navigation features (jump forward/backward by number of lines or time interval, go to a line number or time stamp, and some simple searching)
  • runs in the terminal (so even over SSH, without having to set up port forwarding, which I never can remember how to do)
  • supports merging of .log with .pcap files
  • auto-unpacks from .log.gz or .zip files
  • textual-enabled vertical and horizontal scrolling (to view logs that are wider than your terminal screen)
    #textual #logmerger #python #tui
GitHub

TUI utility to view multiple log files with merged timeline - ptmcg/logmerger

radiant cloud
#

I need to plot a tree and then rotate it 180 degrees. The nodes should be defined with rectangles, like in the image, but they should be stacked on top of each other, and I don't know how. Could someone please help me?

#

You should be able to compare the leaves of each tree with each other

mystic void
distant river
distant river
inner pollen
hoary anchor
#

I hope this is the right channel to ask:
Can someonep explain to me please, what the colors mean in Pycharm in the "Git Tab"? I added a branch, added a feature and delted the branch afterwards. Are the colors for different branches? Once I saw that the branch "forked" or branched off to another line, when does it happen and what is the difference?

molten brook
sudden igloo
#

Not sure if this is the right channel to ask, but if doing continuous integration and someone messes up on the main repository and wants to get rid of a commit, like you forgot to test locally and the tests failed on integration, is it normal to basically end up rewriting the history to get rid of it from main? Or... Are you supposed to be developing on a separate short lived branch, merging it after your tests pass, or removing it from that one if they fail.

Because I've been in the situation several times where I've wanted to remove a commit from main and jetbrains would not let me force push and I had to go through the git command and get credentials and so on (it considers it a protected branch or something), I think there's a setting I can change to fix it, but I don't want to walk into/continue an anti-pattern.

desert skiff
# sudden igloo Not sure if this is the right channel to ask, but if doing continuous integratio...

you normally develop and test in a branch and then make a PR to merge into main when it's ready for production
these things still happen, and if you end up with bad code in main you would typically just use git revert to an earlier commit and push that again to get back to a previous version of the code (but as a new commit), the bad code will still be in the history of the repo, but that shouldn't be a problem and is the recommended way of fixing such situations in a shared repo (or whenever the code has left your local git repo by pushing/publishing it)
the only situation that i would recommend to really go in and rewrite history in a shared repo like that (github/gitlab/gitea or whatever you are using) would be if you accidentality pushed any sensitive/secret data to the repo that you don't want to be left in the history of the repo, but that comes with side effects to anyone else that has checked out and have copy of the repo
a more detailed explanation of that and the consequences can be found at https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository

sudden igloo
# desert skiff you normally develop and test in a branch and then make a PR to merge into main ...

That makes sense. I misunderstood "don't branch" (though I do understand local development is technically like its own branch to begin with, and short lived branches are fine) and "the code should always be in a releasable state". So it's fine for it to be red at points in its history as long as the latest is returned to a working state quickly, and "reverting" is just adding a new commit to the history with the bad changes removed. If something sensitive is there and it has to be scrubbed history has to be rewritten and if there's been important commits since all the hashes people potentially rely on are about to become invalid and coordination required so that no one pushes those old changes again and or loses work.

I think the only times I rewrote it was when I did accidentally put somewhat sensitive information in a readme. I'm confused by the first part though, if I'm doing continuous integration I'd want to be working on the main branch and everyone integrating as soon as possible without waiting on review (just automated tests), did you mean in general or like one that you approve yourself or like an automated one that gets approved if the tests pass? (I have seen short lived feature branches are a thing). Thanks for taking the time to explain, and providing that resource. Right now for context I'm not working on any features explicitly, or planning far at all, I'm just taking the code one step at a time, exploring the problem, getting stuff further, and commiting and integrating frequently seeing the tests still passing on the repository.

deep estuary
#

even post rewriting you're just changing what appeared on the branch at what time, the original commit that you've removed will still be in the reflog and is still completely accessible, so if you're truly looking to scrub secrets from a git repo deleting it is generally the only truly reliable option

#

for example if I have this commit history:

commit 05876e55b6d01768f763190d43aacd1203b24aa4 (HEAD -> main)
Author: Joe Banks <joe@jb3.dev>
Date:   Fri Nov 21 14:47:18 2025 +0000

    Add another file

commit a185ebe6d51605dbf0f46385c4852ecc73dd6e80
Author: Joe Banks <joe@jb3.dev>
Date:   Fri Nov 21 14:47:04 2025 +0000

    Some bad commit I added

commit 52bdd02776ea48fb47051dc26852f46936403837
Author: Joe Banks <joe@jb3.dev>
Date:   Fri Nov 21 14:46:39 2025 +0000

    Initial commit

and i use git rebase HEAD~2 and then drop the bad commit you can see it's still in the reflog

#

even though it's no longer in the log

#

and thus if I run git diff a185ebe~1 a185ebe (get the diff between whatever was before a185ebe and then a185ebe), you can still see the changes, even though that commit was dropped from the branch

#

a lot of this is only locally cached but github itself does also have caches that still allow you to sometimes see things that got force pushed away

#

you can expire the reflog etc. to fix local stuff but there's often ways that things end up on github that are accessible (like that time someone added yt-dl to the github dmca repo)

desert skiff
deep estuary
#

sorry that's on me — I read the last bit of the above message, hadn't quite started the day yet

sudden igloo
swift cradle
#

hello guys

desert skiff
#

!rule ad

rancid schoonerBOT
#

6. Do not post unapproved advertising.

desert skiff
#

this is not the place of this sort of thing

cedar moon
#

.

quartz haven
#

Their is 4 bugs

#

And logic flaws

swift cradle
#

Ok can you explain

crimson spruce
#

Please delete this.

swift cradle
#

👍

crimson spruce
#

Same goes for you, advertising is not allowed here.

crimson spruce
#

@coral scroll I've deleted your message. See above.

coral scroll
#

?

#

ah.. ok.

#

where can i ask for testers?

crimson spruce
#

Nowhere

coral scroll
#

hmmm 🙁

wraith dock
#

Does anyone know of an automated check to flag code duplication across code base?

short peak
short peak
# short peak I know sonarqube does that. We have it implemented as a GH action, I only use ru...
wraith dock
wraith dock
gentle solstice
#

It also has incomplete features and more bugs.

shadow crow
#

Ty, as planned, has a more rich type system than mypy/pyright. For example it's going to support Intersection and Not

willow pagoda
#

First time publishing docker images, what configuration causes these un/tagged sha256-* versions to appear? They're a bit noisy so I'd like to skip uploading them, but I couldn't find a relevant option in metadata-action or build-push-action:
https://github.com/thegamecracks/ministatus/pkgs/container/ministatus/versions

my workflow file: https://github.com/thegamecracks/ministatus/blob/main/.github/workflows/docker.yml
last runs: https://github.com/thegamecracks/ministatus/actions/workflows/docker.yml

crimson spruce
astral apex
#

Sigstore publishes to the index

#

Try docker pulling one of them
You'll get an error saying application/vnd.dev.sigstore.bundle.v0.3+json isn't a valid mediatype

willow pagoda
lethal pond
#

is there another source code hosting platform like GitHub that offers free CI and a container registry? I don't need a lot of it. Just one action that publishes one docker image every month or so?

#

I'm looking to move a hobby project off of GitHub

#

okay, I tried gitea and that does not offer a similar service

thorny shell
#

I'd check gitlab

lethal pond
#

okay, thank you ill try that too

turbid dirge
#

Gitlab and Codeberg are the names I keep hearing, but I don't know in detail what either offers.

thorny shell
#

me neither

neon shard
thorny shell
#

I am put off by any tool that introduces a ton of new jargon: "knots", "spindles", "Jujitsu change IDs"

#

also it's unclear what problem it's solving

neon shard
#

knot/spindle and the like is just cutesy themed naming for their stuff

thorny shell
#

uh huh

neon shard
#

change ids are ids that are stable over the evolution of a commit

thorny shell
#

The tool might be great. I'm just saying those terms are ... let's say pink flags.

glad geyser
#

Hi

neon shard
neon shard
#

jj has started popularizing them recently, and different services have started accomodating them

#

(at the very least not destroying them during upload/rebasing/whatnot)

#

gerrit has had this concept for a long time as well

thorny shell
#

aw man it's just a guid

neon shard
#

it's really just some identifier

#

the one jj is popularizing is an identifier stored as k-z hex to easily disambiguate it from the usual git hashes and similar

#

but ultimately it tends to just be a randomly generated identifier you can use to refer to the change

#

but one that is stable over the evolution of a commit

neon hull
#

what's the quickest way to test a script on multiple python versions

#

pyenv local version switch? uv?

sudden igloo
jagged yoke
jagged yoke
#

Unrelated: is there a formatter, even a does-this-one-thing-only type of tool, that can format long strings in code? I usually use black instead of ruff because of this, but it looks like black is reconsidering some of their string processing stuff.

jagged yoke
neon hull
#

it changes the env version for the moment

willow palm
gentle solstice
#

Tox/nox in general

urban jewel
#

just or ahoy?

I have used ahoy in the past, is as simple as declaring a yaml.

what is the simpler/most used?

thorny shell
#

never heard of ahoy

#

I have grown fond of just, fwiw

#

you might be able to answer "which is most used" by (somehow) querying github. I don't know how to do that, but I assume it's possible

urban jewel
#

thanks

urban jewel
#

I do prefer the yaml syntax than the makefile one

astral apex
#

.ahoy.yml

urban jewel
#

yep

astral apex
#

I don’t want this happening to my CLI tools

urban jewel
#

if yaml sucks so much, why is it used everywhere? like docker, k8s, etc

genuine question

thorny shell
#

dunno. Maybe everyone really wants to use JSON, but use YAML instead because it allows comments 🙂

brazen forge
#

nobody wants to handwrite JSON

quasi storm
#

Subject: Guidance on Setting Up Error Alerts

Hi,
Not sure if this is the best place to ask—feel free to redirect me if not.

I currently have Grafana + Loki logging all backend errors, but I don’t get any real-time alert when something goes wrong. Usually I only find out when someone reports the issue. I was considering adding a Teams webhook, but I’m worried about spamming the channel with too many notifications.

Looking for suggestions on how people normally set up alerting rules—especially around when to actually send alerts vs. when to just log errors.

Thanks

thorny shell
#

off the top of my head:

  • have your Grafana or Loki or one of those guys scan each log message, and send an alert if and only if the text of the message matches some pattern that you know indicates something Bad®
  • have Grafana or Loki count the number of errors in (say) the last 60 seconds, and send an alert if it exceeds some value
#

disclaimer: I have never found a reliable way to do this; there's always either too many alerts or not enough 🤷

analog kettle
#

so you can't use docker cp to copy between two containers, but if I understand correctly, you could just pipe two docker cp calls and let the tar flow from one to the other

#

in which case, why not just let docker cp natively do that?

thorny shell
#

maybe doing "cp" properly involves subtleties like permissions that they haven't figured out

brazen forge
#

@quasi storm, pinging since I accidentally turned that off when replying

quasi storm
gentle solstice
#

I'm looking into self-hosted error reporting and I'm deciding between bugsink or glitchtip. Has anyone used either and would you recommend it? What other self-hostable suite have you used? Working completely offline (aside from a docker registry) is one of my requirements.

crimson spruce
gentle solstice
#

I didn't realize I could self-host it.

#

Does sentry have a helm chart?

crimson spruce
# gentle solstice Does sentry have a helm chart?

I have no idea, it has a docker-compose file. It turned into a behemoth though, I think there's like >50 containers involved now?

We are in the process of updating from an ancient version of Sentry to a modern one, and I hear it's a bit of a headache.

gentle solstice
#

Not sure how I feel about it needing 16GB RAM+swap

  • 4 CPU Cores
  • 16 GB RAM + 16 GB swap
  • 20 GB Free Disk Space
gentle solstice
#

Upside: bugsink is compatible with sentry apis

crimson spruce
#

As is glitchtip, apparently

gentle solstice
#

sentry is just the standard, isn't it

ivory fjord
#

Hello guys
New here

vague silo
#

Hello Sani

deep estuary
#

Hello Sani

inner pollen
#

Hey everyone! Looking for a review of my open-source MCP platform, please review it once. It’s for internal teams managing MCP servers across the company.
Currently easy to host on bare-metal; I’ve only tested on a single-node K3s setup. Can it run well on a multi-node bare-metal cluster? I’m about a month into Kubernetes, exploring internals.
It will act as an internal registry for your company. The platform is capable of hosting those mcp server, considering the scale is supported by the
cluster on which the platform is running, I am shipping a CLI to manage the platform, which includes UI as well, if users find it useful
I’ve used operators and CRDs, and I’m considering an admission webhook for some tasks. Please share any issues you see and suggestions to
improve it.
https://github.com/Agent-Hellboy/mcp-runtime

GitHub

A manager,registry,broker, and infrastructure to manage , deploy and use MCP servers. - Agent-Hellboy/mcp-runtime

dawn hill
#

Cleek is a super-simple task runner that automatically generates CLI's using your function type-hints. Create a cleeks.py file in you project:

from cleek import task

@task
def greet(name: str = 'World') -> None:
    print(f'Hello, {name}!')
$ pip install cleek
$ clk
┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Task  ┃ Usage                    ┃
┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ greet │ clk greet [-h] [-n NAME] │
└───────┴──────────────────────────┘
$ clk greet -h
usage: clk greet [-h] [-n NAME]

options:
  -h, --help       show this help message and exit
  -n, --name NAME  default: World
$ clk greet -n Discord
Hello, Discord!
gentle solstice
#

Were you inspired by click?

dawn hill
# gentle solstice Were you inspired by click?

Ner, we used fabric for ages. If I remember right fabric didn't allow types, but we wanted type-safe code. So I made cleek. The main aims are 1) type-safety 2) shouldn't alter code so I can be used elsewhere (@task just returns greet() unchanged so I can be used like another other function) 3) low effort (we were already writting the type annotations).

crimson spruce
#

Actually reminds me more of fire

dawn hill
fiery marsh
#

guys

#

can u help me check this code

#

someone

#

made me run it on termux

mystic void
dusty stump
#

does anyone in here have experience with spiderfoot? im trying to manually edit the use case section (Footprint mode) to not run a specific module displayed in the modules directory for spiderfoot, the module is sfp_tldsearch.py, ive tried editing the file name to other names, editing the file contents, or moving it completley but i just get hit with a "Broken Pipe" error whenever i try and run a scan, anyone got any tips?

dusty stump
#

nevermind, i fixed this problem by editing line 29 from 'useCases': ["Footprint"], to 'useCases': [""],

shut fulcrum
#

Weird obscure tool: Connect:Direct.

thorny shell
#

TIL

half grove
#

Hello guys! I do not know this a right place to talk about my project.

I built a package Kaizo for automation and dynamic configuration execution. I used it personally for running and training ai models on servers. It is fully dynamic and pluggable. I wrote a hugging-face plugin to upload/download files onto hf servers.
You can write additional plugins for it for your usecases.

The full documentation is available here: https://naughtfound.github.io/kaizo
Repo: https://github.com/NaughtFound/kaizo

You can install it using pip.
Thanks.

GitHub

declarative configuration parser. Contribute to NaughtFound/kaizo development by creating an account on GitHub.

wind solstice
#

Hey guys , can someone explain Devops vs Site Reliability Engineer vs Cloud platform engineer .

warm gazelle
#

I don't really know how to code python, but I brute forced a couple different chatbots to create a .exe file renaming program mostly to make my life easier on renaming folders with many pdfs, is there a place I can share my github link with the .py and my released .exe?

I struggled heavily through compiling it so I have the requirements.txt and .py because I'm betting the idea of running some unknown .exe isn't that great

But i'm not sure where/who I could share with to see if it works like I think on a different system

grave jewel
#

I love Python and long walks. Daydreaming about physics sim algorithms while completing a 32768-meter long section in my quest to connect every major Bay Area park and city on foot is sublime.

Walking every step between SF San Jose Antioch Felton and more so far has been one hell of an eye opener. Tents and RVs are everywhere! This is the highest homeless tech geek concentration in the ENTIRE WORLD, probably even edging out Seattle.

How can the homeless keep their files safe? Oops, their phone was stolen by thieves or police (can they even afford another phone, not so easily if they are saving up their wages for an actual apartment).

What about a WASM virtual machine that includes a compiler? The idea is they log on to any library computer (the abundance of homeless in libraries doesn't bother me, but the staff constantly waking them up was sad and distracting) with a single username-password and have a virtual Linux in their browser that includes a WASM compiler and they can type in pip install pygame etc. No need for any personal property whatsoever to use! For some people, such as the founders of Jazz, creative projects keep you going through tough times.

Oh and it would also be useful on days I don't want to lug my computer around...

BUT how does such a project stack up?

  1. Performace. Speed ratio vs native for CPU and GPU heavy tasks. How reliable such a ratio is, so that they have an idea of what native performance would be. How much GB of RAM you can actually access. Startup and server I/O latencies and download speeds.
  2. Feasibility How many wheels need to be invented vs how much can it be build just by bolting together bog-standard parts?
  3. Cost The servers have to store and deliver data. How many GB do people really need and how much does it cost? How many clients can one large cloud instance handle (or is at-home volunteer better)? It should be backed up. So the total $/person/month I don't know?
hexed token
#

is there a tool like node version manager fpr python

thorny shell
sage basin
#

I need advise on what projects to try out to learn devops? Azure or AWS, if you have recommendations on which is better that would be great. I currently only have experience with Django

shadow crow
#

somehow pyenv is faster at 75ms

astral apex
#

Somehow?

#

Have some faith in Python

quasi storm
#

Hi guys

How do people safely deploy to a VM from GitHub Actions?
I have a VM where my containers run. On each push, I want GitHub Actions to trigger a build on the VM and run docker compose up.
One approach I’m considering is storing SSH credentials in GitHub Secrets and having the action SSH into the VM and run a deploy script.

Is this the usual/recommended pattern, or are there safer / cleaner alternatives (agent on VM, webhooks, etc.)?

brazen forge
sudden igloo
# quasi storm Hi guys How do people safely deploy to a VM from GitHub Actions? I have a VM wh...

safe is situational and kind of subjective. You have to store an ssh key there if you want any form of server automation I'm pretty sure. Secrets and treating it like a highly privileged API key or anything else would be appropriate.

This specific approach doesn't sound usual imo but it seems relatively par for the course depending on what exactly you want to do. The weird part sounds like deploying with docker compose.

quasi storm
#

umm basically i build the image in vm and directly up the container from there

#

because the image is of around 2gbs

#

so thats why not keeping it in GHCR

sudden igloo
brazen forge
#

you could run a small HTTP server on the VM that only exposes the minimal surface of accepting requests to build the container image and restart the service

#

then send authenticated requests to it from GitHub Actions

deep estuary
deep estuary
# quasi storm Hi guys How do people safely deploy to a VM from GitHub Actions? I have a VM wh...

the way I do it is with:

  • a VM that is on a tailscale network
  • a github actions workflow that requires an approval (to prevent forks and PRs from having too much power) or a workflow that can only deploy from main (for prod deploys)
  • use github environments to make available an SSH key when a specific environment is being deployed to
  • finally, i use SSH authorized key restriction to control what commands those CI SSH keys can run