#dev-contrib

1 messages · Page 22 of 1

vale ibex
#

Yea, we can likely make it better by having the bot occasionally check if there are open help threads that it doesn't know about

wise marten
#

yeah, better to catch something late than not at all

rapid igloo
#

done! documented just the new HTML files I added in the PR for now

#

The reason I asked is, I thought the event management system was to be a prospective feature for one of our bots.

If we get such a thing it would've been possible to have the site pull events information from discord's end (or vice versa) to prevent hardcoding event details (dates, branding, description) on the site's events page.

For instance, a command can be used to set up the dates for a new event, say PyWeek - March 17-24th, the bot then sends an API request to the site and the site can reflect these dates for the new event on the events page. When the events page is requested at a time after March 24th, PyWeek 37 then shows up under "Previous events". This removes the chore of having to update the static page whenever an event starts/finishes.

vale ibex
dusky shoreBOT
vale ibex
rapid igloo
#

true, though I'll just be pinging Kat but in a different channel lemon_sweat I think she'll know best what to do with the issue. (FTR the last ref before today appears to be here: #leads message)

vale ibex
#

ah cool

thorny obsidian
#

I'm catching up on pydis stuff today

thorny obsidian
cold island
#

@timid sentinel I brushed the dust off bot#2669 , there was a small change remaining

dusky shoreBOT
prime cipher
#

@cold island Hey Zig, all good? I've been assigned to bot#2938 last week. Thought I'd start working on it now that I have some free time

dusky shoreBOT
prime cipher
#

Say, is the description you gave at the issue all of your requirements for it?

#

I'd like for any complementary info/ideas of how it should shape up to be if you have anything to share

cold island
#

Hey, no I think that's all, including what I replied to mina below

#

The nomination logic is in

#

!source nominate

stable mountainBOT
#
Command: talentpool nominate

Adds the given user to the talent pool.

Source Code
prime cipher
#

I see, thank you! That saves some time and digging

cold island
#

Sure, let me know if you need any other info

stable mountainBOT
#

bot/exts/recruitment/talentpool/_cog.py lines 329 to 334

if ctx.channel.id != Channels.nominations:
    if any(role.id in MODERATION_ROLES for role in ctx.author.roles):
        await ctx.send(
            f":x: Nominations should be run in the <#{Channels.nominations}> channel. "
            f"Use `​{BotConfig.prefix}tp forcenominate`​ to override this check."
        )```
prime cipher
#

Then, the context menu should redirect the helper to the nominations channel, yeah?

cold island
#

The context menu command should be available for any message, but the feedback for a successful/failed result should be in the nominations channel

prime cipher
#

I see
I should be done by... tomorrow morning, I think? with something functional. Then I can ping you for review at GitHub?

#

I'll get to it when I finish shower and dinner

cold island
#

I don't know when your morning is, but sounds good 😄 It might take me a bit to go over it though

prime cipher
#

Uh, in... 10 or so hours from now

#

-3 UTC

cold island
#

You don't need to rush it, there's no set deadline or anything

prime cipher
#

I mean, I've been sitting on it for an entire week
I gotta make up for that 🥴

#

But yeah, I'll be getting something going by that time. See ya! 🫡

cold island
#

Really, if the plan was to pull an all-nighter for this, it's not necessary haha. Your update that you've started working on it is already plenty (and appreciated)

cold island
wise marten
#

Hah, funny, if you edit an eval to remove the command, it still asks if you wanna rerun

#

print(0)

stable mountainBOT
#

@wise marten :white_check_mark: Your 3.12 eval job has completed with return code 0.

0
wise marten
#

not sure if that's worthy of attention 🤷‍♂️

vale ibex
#

looks to be a fun side effect of how we do the rerun checks. I don't think it's something we need to change.

solemn vine
#

!source

stable mountainBOT
rapid igloo
dusky shoreBOT
rapid igloo
#

thanks Chris joe_salute

vale ibex
#

no worries, we're limitted on seats on netlify, otherwise more people would be given access

rapid igloo
#

ah I see

warped zenith
#

hey there. I am struggling with converting a kivy app to .exe and am looking for someone to help me. I have been stuck in this area for some time now and am really lost. please someone help me.

vale ibex
tame pebble
#

@vocal wolf sir-lancebot#1197 will become possible to wrap up once sir-lancebot#1458 is merged

rapid igloo
#

hey @crude gyro, is site#662 (frontpage logos) still high-priority, and are you still going to work on it?

dusky shoreBOT
rapid igloo
#

I took another look at it today - for the "avoid hacky filtering" part, django can be easily fixed to use /static/images/events/logos_dark/django.png (which you made as part of the work for dark theme).

but for linode, I couldn't find an official asset that has the green 'L' black & white. perhaps we could just use a logo that contains only the text "linode"?

#

other than that and the baseline issue (which I'm not personally experiencing since I'm not on Windows), the sponsors section should be resolved now as I've added the new grid layout as part of the implementing dark theme.

crude gyro
#

oo, nice catch

#

to answer your question, this is not on my radar currently, no

#

I had totally forgotten it

#

we shouldn't use a logo that only contains the Linode text, but it should be easy enough to create the asset we need

#

but it's great that it's already mostly resolved

#

were you considering completing any part of this yourself, @rapid igloo?

#

e.g. the not using the hacky css filtering aspect

#

I could make you that Linode asset

rapid igloo
#

I was looking into how feasible a fix would be, as it was labelled high priority. since you're no longer on it, then yeah sure thing, it's just the django baseline issue I'm not quite sure of

#

here's how it looks like with the dark mode linode logo and without using filtering

crude gyro
#

definitely happening in that picture

rapid igloo
#

(missing bulma logo is fixed in another pr)

crude gyro
#

both Django and linode logos are floating a few px above the baseline

#

and netcup is maybe one px below?

#

I mean this is pretty nitpicky polish stuff but just adjusting them until they're perfectly lined up with the font up or down a couple pixels - in some way that's highly browser compatible - is the job, imo

#

Linode font is a bit tiny too

#

is this the one you meant could just be the text?

rapid igloo
#

yeah

crude gyro
#

not the sponsor one

#

oh okay

rapid igloo
#

yup

crude gyro
#

that's different. that's not too bad.

#

we could do that

rapid igloo
crude gyro
#

yes that alignment looks very good

#

zoom level, maybe. browser, hmmm.

#

screen size, I hope not. worth testing.

rapid igloo
#

alright I'll test it on my few browsers with that ^ configuration then

crude gyro
#

we don't need to accommodate every zoom level

#

we just want it to look good for most people

#

who will be on a common and popular browser at 100% zoom

#

webdev is rarely perfect, just try to achieve good enough

rapid igloo
#

right. I understand, I was mostly hoping if we could come up with a more robust solution lemon_pleased

#

from my testing so far it's pretty much perfectly aligned on multiple browsers and zooms

crude gyro
#

what are you using to align?

#

margin?

rapid igloo
#

background-position-y

crude gyro
#

oo

#

right cause it's a background image

rapid igloo
#

it was previously set for django already, so I just adjusted it

#

right

crude gyro
#

well that sounds promising then.

#

let's go with that

rapid igloo
#

okay great! now I'll just hope it's also fixed for windows

#

oops, sorry for the ghost ping

#

this should be fine

crude gyro
#

looks great, @rapid igloo

stable mountainBOT
#

.github/dependabot.yml lines 2 to 6

updates:
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "daily"```
rapid igloo
#

are there any specific reasons we have dependabot check for updates daily (for all our repos), and to also be notified of semver patch bumps?

it's possible to have dependabot only PR minor & major updates, it makes the PRs less frequent. pithink

tame pebble
rapid igloo
#

right, fixes are under patch by convention

tame pebble
#

Yes

#

Not everyone follows the convention

#

But some do

rapid igloo
#

is that the same reason for "daily"? so we can always get on top of all the fixes that might affect the projects as soon as they come out

tame pebble
#

I don't have the historical reason for the daily part

rapid igloo
#

ah I mean, why we would choose to stick to daily rather than change

tame pebble
#

What would you have it changed to ?

rapid igloo
#

but I do understand keeping up to date on fixes is important, our bots are used quite heavily

tame pebble
#

The review cost is going to be the same, since it'll get reviews "randomly" since there's no predetermined availability of coredevs/contribs.

And if version n is released then another n+1 isi released afterwards, dependabot will recreate the PR IIRC.

So having these come as soon as possible allows us to better merge and integrate the changes whenever someone is available in that timeframe

rapid igloo
#

fair point 👍

rapid igloo
dusky shoreBOT
clever wraith
rapid igloo
#

it uses the system font

rapid igloo
dusky shoreBOT
tawdry vapor
#

Semi-related, if anyone needs a way to convert SVG to PNG in multiple resolutions I found a script I wrote for that. It uses Inkscape for conversion (imagemagick's rasteriser is not as good).

rapid igloo
#

thanks Mark, I'll also need its ID

tawdry vapor
#

Sorry I don't have permissions to get its ID

#

@vale ibex or @cold island can (it is in server 3)

rapid igloo
#

hmm if the emoji is added everyone can send \:IssueNotPlanned: to get it right? if I'm not mistaken

tawdry vapor
#

No permissions to send messages

rapid igloo
#

ahh

cold island
cold island
rapid igloo
tame pebble
#

meta#224

dusky shoreBOT
tame pebble
#

Neat !

#

(Yes @rapid swallow, I stole your testing query)

timid sentinel
#

hmm, that's fairly invisible in dark mode, have we considered using the grey icon that github uses in dark mode?

tame pebble
#

meta#188

dusky shoreBOT
rapid igloo
#

(the color is rgb(132, 141, 151))

dim pelican
#

.color rgb 132 141 151

dusky shoreBOT
#
(132, 141, 151)

Color information for RGB (132, 141, 151).

RGB

(132, 141, 151)

HSV

(212, 13, 59)

HSL

(212, 8, 55)

CMYK

(13, 7, 0, 41)

Hex

#848D97

Name

No match found

rapid igloo
#

that color also looks alright in light mode

timid sentinel
#

yeah that seems good, I think the current one is only black because that's the default svg fill colour

#

Here's the updated icon for anyone in the emoji server that can change it

vale ibex
#

meta#224

dusky shoreBOT
vale ibex
#

Nice

rapid swallow
#

Nice

dim pelican
#

Nice

stable mountainBOT
#

Nice

dusky shoreBOT
#

Nice

sharp crag
#

Nice

mellow echo
#

Nice

zinc cedar
#

Nice

patent pivot
#

Nice

fervent sage
#

Nice

vocal wolf
#

Nice

marble pivot
#

Nice

timid sentinel
#

Nice

upper dome
#

Nice

clever wraith
#

no

still comet
#

Not nice

zinc cedar
#

!ban @clever wraith

rapid igloo
atomic ivy
#

nice

clever wraith
rapid igloo
#

are discord file previews supported on all platforms now? I know on web they definitely work.

bot#1621 proposes to truncate code snippets that go over 2000 chars and/or 15 newlines, and mentions file previews as an alternate solution.
currently the bot provides no response when the chars/number of lines go over the limit

atomic ivy
rapid igloo
#

aw man

rapid igloo
atomic ivy
#

yep

rapid igloo
#

why, discord, why :(

#

thanks moyen

rapid igloo
#

@last patio joe_salute

solemn vine
#

!source

stable mountainBOT
slim widget
#

Hello. I have some free time as was wondering if there are any unassigned issues I can work on?

tame pebble
hoary haven
#

i'd love 2922 to be done!

#

2963 should probably be higher priority though

#

oh no i misread it, i don't think it's as urgent as i thought

patent pivot
#

I'd like to take 2918 and 2922

#

but if anyone else wants those before me go ahead

slim widget
#

Alright, I'll take a look at 2963 then 😄

tame pebble
#

assign yourselves, that way it's clear who claimed what

patent pivot
#

yea was trying to just couldn't get GitHub mobile to

clever wraith
#

Hello guys so basically the carrot is a carrot the cucumber is a cucumber and that’s it

rapid swallow
patent pivot
#

hello @hoary haven thoughts

outer oasis
#

Lanaguage leak

hoary haven
#

hey i like that

patent pivot
solemn vine
#

can someone help me with getting the bot up on local machine

clever wraith
#

what os you using?

tame pebble
#

yeah

#

Anyway, if you're on macOS, try running it like this DOCKER_DEFAULT_PLATFORM=linux/amd64 docker compose up --build

solemn vine
solemn vine
#

ah there we go another error

vale ibex
vale ibex
vale ibex
#

Ah wait, no 6379 is redis. That error is saying that something is running on port 6379 so it can't bind to that port for bot's redis

solemn vine
#

i see

solemn vine
vale ibex
#

what does docker ps output?

solemn vine
vale ibex
#

nothing below that?

solemn vine
#

nope

vale ibex
#

weird

#

what about netstat -a | grep 6379

solemn vine
vale ibex
#

hmm so something is running on that port then

#

does lsof -i :6379 -S output more info? can't remember what that outputs

#

Yea, looks like redis server is already running on that port

solemn vine
stark crypt
# solemn vine well what can i do now? any ideas?

i might very well be wrong.

but redis binded to 127.0.0.1:6379 might not be really necessary.
https://github.com/python-discord/bot/blob/9356bb8f539c5939c26a1fab4bfb8e1278dae1f1/bot/__main__.py#L19-L33
https://github.com/python-discord/bot/blob/9356bb8f539c5939c26a1fab4bfb8e1278dae1f1/bot/constants.py#L380-L388
https://github.com/python-discord/bot/blob/9356bb8f539c5939c26a1fab4bfb8e1278dae1f1/docker-compose.yml#L99
suggests the bot doesn't use specifically 127.0.0.1:6379 but rather redis:6379 within the docker composed managed network

thus, try commenting/removing https://github.com/python-discord/bot/blob/9356bb8f539c5939c26a1fab4bfb8e1278dae1f1/docker-compose.yml#L30-L31 and report back if it all works?

edit: highlighted the wrong lines in the last link, updated.

stark crypt
# stark crypt i might very well be wrong. but redis binded to `127.0.0.1:6379` might not be r...

did a git blame, the commit that added it has this commit message

Expose the redis port to the host
Useful for those that run redis with docker-compose but not the bot.
The bot on the host won't have access to the Docker network in such
case so the port must be exposed.

https://github.com/python-discord/bot/commit/8b5c1aabf58eb3c794cc61173bd7500a696a8376
so yeah, just comment them out if you ain't running bot from your box directly

solemn vine
#

thanks ry, chris and flying whale

tawdry wagon
#

Hello, ik that i should open an issue on github but I'm unable to do so right now.

The Bot responded with two messages to a command, you may want to look into it

#bot-commands message

rapid igloo
#

I think that was during its restart, should be fine now

last patio
#

yes, thanks for the report

#

during the restart, kubernetes will spin up a second pod and we'll have two sir robins for a moment

#

during this ancient ritual, they will fight to see which one is the stronger one in a battle to the death

#

these battles are decided within seconds, and happen multiple times a day

#

kubernetes is really brutal

dusky shoreBOT
#

Viruses so far have been really disappointing on the 'disable the internet' front, and time is running out. When Linux/Mac win in a decade or so the game will be over.

last patio
#

LMFAO

#

that's really good

violet terrace
#

@outer oasis I just pushed it as fishhook version 3.0, so the version will probably need to be bumped in the version lock file for the bot

outer oasis
#

Oh you’re ready now
Aight

#

(I’m actually in bed)

violet terrace
#

oh lol its all good

#

no rush

solemn vine
#

is there a way to test the rich_embed filter ? ̆

silver igloo
last patio
#

yes

silver igloo
#

So, is it worth changing? Seems to be more appropriate for an application only one intance of which could run 🤔

violet terrace
violet terrace
#

as far as my local testing, i ran a x86 ubuntu vm and pip was able to properly install keystone and capstone (macos has problems but the bot is ubuntu right?)

outer oasis
#

Hi, need a review on snekbox#207

dusky shoreBOT
outer oasis
#

aw wait crap

outer oasis
violet terrace
#

pip should build it

#

unless yall have that disabled

outer oasis
#

I guess we'll find out

violet terrace
#

the C code does not need any weird dependencies, it just defines one function tbh

outer oasis
#

@vale ibex/@tawdry vapor - is Snekbox capable of building C and ASM extension modules from source for an eval dep?

outer oasis
vale ibex
violet terrace
outer oasis
vale ibex
vale ibex
#

it should use the remote cached image for a lot of it

#

if you need to do a cold build, then yea it will take a while as the image builds Python from source

outer oasis
vale ibex
#

you could docker compose build first and then try make build

#

that might bring a lot of the cache down to your machine

outer oasis
violet terrace
outer oasis
vale ibex
#

yeah

#

built locally fine

outer oasis
#

thank

#

Does Snekbox have CD?

vale ibex
#

yeah

outer oasis
#

based

vale ibex
#

I've also made a small CI improvement snekbox#208

vale ibex
#

since I noticed your CI passed even though pip errored

outer oasis
#

I saw that

#

Well, I saw that CI passed
Wasn't sure if that was expected or not

vale ibex
#

hah nope

#

PR description describes why

outer oasis
#

I've been doing some PRing too

dusky shoreBOT
outer oasis
#

It's a bit dense so feel free to ping me in OT if you have questions

violet terrace
clever wraith
#

hi

violet terrace
#

@outer oasis just used the CI stuff you added yesterday, finished setting it up and used it to push a release, thanks so much!

#

I have not used Github Actions much, if i want it to only run when I make a new release, I should change ```yaml
on:
pull_request:
push:
branches:
- main
release:
types:
- published

to ```yaml
on:
  release:
    types:
      - published
``` right?
violet terrace
#

sweet

#

i tend to push small modifications a lot - but not full releases, so i figure its better to only push to pypi on release

outer oasis
#

The publish step is skipped if it’s not a release

stable mountainBOT
#

.github/workflows/python-build-publish.yaml line 51

if: github.event_name == 'release' && github.event.action == 'published'```
violet terrace
#

oh i missed that

outer oasis
#

Yep

#

But yeah, you don’t really need to build every possible wheel on every PR
It makes sense to disable all that

violet terrace
#

yea

#

thanks so much tho, gonna read up and learn more about how I can use Github Actions

outer oasis
#

👍I’m happy it helped

violet terrace
#

do you know how often the bot env rebuilds (and would pull the 0.3.2 release?)

#

i added some code to attempt to stub out the deprecated dependencies, prob not the best solution, but it fixes the bug since the dependencies are only needed in more obscure cases by capstone

#

and capstone from its wheel is covered by simpler and non-deprecated code lol

outer oasis
# violet terrace do you know how often the bot env rebuilds (and would pull the 0.3.2 release?)

| @stable mountain doesn’t do the evaluating itself, it sends your code to Snekbox
Both @stable mountain and Snekbox use GitHub Actions to update themselves automatically after you merge a PR

Snekbox has the eval dependencies pinned to exact versions, so when you update your project you need to make a PR like I did to update that pinned version, and then post the link here and ask for a core dev to approve it
(I am not actually a core dev)

stable mountainBOT
#

requirements/eval-deps.pip line 6

fishhook~=0.3.1```
violet terrace
#

this is a fuzzy dependency, so it should cover 0.3.1 - 0.4.0

outer oasis
#

snekbox#207 was the one I made, for reference

All you have to do is type the new version number in and submit the PR

dusky shoreBOT
outer oasis
#

Uh….

violet terrace
#

i think the technical name is compatible release

#

nah they are all set like that

#

I think on purpose

outer oasis
#

@vale ibex Snekbox doesn’t automatically refresh deps on its own, right?
What should @violet terrace do when they want to show off their newest updates?

violet terrace
#

tbh in the past i have just waited, and eventually the update would push, no need to bother anyone or anything

vale ibex
#

while it's a fuzzy dep we also have a volume that stores the user_base that the deps are installed into, so it would requie us to do a fresh deployment for the dep to actually be updated

#

if we redeploy, it would also upgrade so long as the dep is met iirc

outer oasis
vale ibex
#

maybe, no

outer oasis
#

I kinda want to try it, just out of curiosity

#

But not right now
Right now I have to go eat

prime cipher
#

bot#2938 for context,
I've been taking a look at the existing logic on the recruiting cog, and I'm trying to decide the best way to approach this feature. Thing is, I can't seem to find the appropriate place for it to go. As per Discord.py's documentation, the command would need to be set under discord.app_commands.CommandTree, but it would seem awkwardly out of place on the cog.
I'm not totally familiar with the codebase, so I haven't taken a full look around to check, but where would you suggest introducing me it?

dusky shoreBOT
rapid swallow
prime cipher
#

Taking a look, much appreciated

slow arch
#

I'm having some trouble with tests for snekbox #205. It's working fine when I send an API request that mimics the one constructed by the eval request, but not when I run a test with the same code. It seems that str.encode() is returning different values when encoding what appears to be the same code, with the one in snekbox returning b'with open(b"\xc3\x83.txt", "w") as f:\n f.write("test")' while the one in the Eval bot returns b'with open(b"\\xc3.txt", "w") as f:\n f.write("test")'

#

It's also displaying the original code slightly differently in the logs, with the eval bot command showing a \xc3 while the test prints a à character instead. Maybe something is wrong with the string-in-a-string situation?

#

snekbox#205

patent pivot
#

hmmmmmm

#

this is interesting

#

maybe try uhhh

patent pivot
#

this is just me having a guess but i suspect that it's most likely that -- the test is interpreting the escaped byte whereas we just want to ship it off to snekbox

#

testing it out in an interpreter is giving this:

>>> from textwrap import dedent
>>> dedent(
...             r"""
...             with open(b"\xC3.txt", "w") as f:
...                 f.write("test")
...             """
...         ).strip()
'with open(b"\\xC3.txt", "w") as f:\n    f.write("test")'

which looks like what you are looking for?

slow arch
#

Yes, that was the problem! Thank you!

patent pivot
#

no problem 🙂

#

tests passing nice

rapid swallow
#
diff --git a/bot/__main__.py b/bot/__main__.py
index 42b3c0c9..78fcba9f 100644
--- a/bot/__main__.py
+++ b/bot/__main__.py
@@ -55,6 +55,7 @@ async def main() -> None:
 
     async with aiohttp.ClientSession() as session:
         bot.instance = Bot(
+            proxy="http://username:password@proxyurl:port",
             guild_id=constants.Guild.id,
             http_session=session,
             redis_session=await _create_redis_session(),
(END)

turns out i had to do this silly me haha

#

severe case of RTFM

last patio
#

hmmm. requests to localhost running over a proxy kind of seems counterintuitive to me

rapid swallow
#

File "/usr/local/lib/python3.9/site-packages/discord/http.py", line 557, in static_login
data = await self.request(Route('GET', '/users/@me'))

rapid swallow
last patio
#

ahhhhh

spark plume
#

ahhhh?

hearty crane
#

since it can create it FOR YOU

rapid swallow
#

(gimme a minute to type)

wise marten
#

Using the close post button gives a confusing message from the bot

#

it gives the appearance of a bug which can be disconcerting for people looking to help

rapid swallow
stable mountainBOT
#

discord/http.py lines 798 to 802

self.__session = aiohttp.ClientSession(
    connector=self.connector,
    ws_response_class=DiscordClientWebSocketResponse,
    trace_configs=None if self.http_trace is None else [self.http_trace],
)```
wise marten
#

(Same message as !close but no indication of why it closed)

rapid swallow
stable mountainBOT
#

discord/http.py line 632

async with self.__session.request(method, url, **kwargs) as response:```
rapid swallow
rapid swallow
celest charm
#

@slow robin Please read our rules. We're not a job board

obsidian patio
#

Looks like .emoji info is broken. Are there any errors being generated? For example, faulty inputs generate a response, but valid inputs don’t:

#

.emoji info pydis_peek

timid sentinel
#

Yeah there was an error on sentry, I've turned it into a GitHub issue

#

sir-lancebot#1513:

celest charm
#

naive datetimes 😩

celest charm
#

!ban @astral cipher Seems like you're only here to advertise.

stable mountainBOT
#

:incoming_envelope: :ok_hand: applied ban to @astral cipher permanently.

clever wraith
uncut zodiac
#

Hey people! I just discovered about this server. I want to learn python from scratch. I do have various sources. What I do not have is a partner who is already associated with python. Lemme know if anyone is interested. I just want to ask a lot of questions. (I hope I am not breaking any server rules here by adveritising this lol)

#

resources*

charred tartan
#

@uncut zodiacHello, I am a beginner in Python. I have been learning it for a month now. I believe we can be great study partners.

sharp crag
#

Hi, this channel is for discussing Python Discord's own open source projects, not advertising your own

clever wraith
sharp crag
clever wraith
sharp crag
clever wraith
sharp crag
cursive relic
#

When user leaves the server and has open help post, there's currently a nice notification that tells others that they left the server. Should the channel also close soon after that? If not immediately, maybe after a few minutes or so?

grim prairie
#

In the case of your specific circumstance; the post violates the server rules so if a mod notices it they might swing by and close it. Otherwise it'll just time out naturally

#

I should also point out that the feature just got implemented like... Yesterday @cursive relic

#

Which actually makes me really happy because there definitely was some debate over how often this happens... So that it happened within 12 hours of implementation is lovely

cursive relic
# grim prairie I should also point out that the feature just got implemented like... Yesterday ...

I read about this a bit from GitHub but didn't remember about the details, the feature is indeed useful (even if it happens rarely). I do get the point of keeping the post open, which does make sense now that I think about it, having it open shouldn't cause really any disturbance especially with the new notification of user leaving. Also if there happens to be discussion anyways after OP leaves, it's nice for others to be able to continue the discussion either way.

#

Glad that the feature got tested here that soon 😅

cunning trellis
#

i need help with python]

#

someone dm me

#

i need hlep installing python

outer oasis
outer oasis
drowsy ravine
#

!pypi pandas

stable mountainBOT
#

Powerful data structures for data analysis, time series, and statistics

Released on <t:1712778348:D>.

drowsy ravine
# stable mountain

Would anyone be interested in having the first pypi release added to this or does that feel like useless information?
Something like:
Current: date First: date

#

On somewhat the same topic.
Is there anyway to change / customise the discord timestamp from the Long Date format :D> to %d %b %Y (day shortmonth year)?

<t:1543392060:D> -> 28 Nov 2018

clever wraith
cursive relic
rough needle
#

i plan on remaking the resources page since its very cluttered and hard to navigate. i plan on having a big selection on the mainpage that will ask "beginner/advanced" which then will be like curseforge mods page

vale ibex
#

Please raise an issue with the proposed changes and why you think they are needed. if you start work without that, we cannot guarantee that whatever you work on will be merged.

vocal wolf
tame pebble
#

(idk how but i have completely missed hedi's review, i will take care of it)

vocal wolf
#

yuh

#

very good

tame pebble
#

...

vocal wolf
#

lol

stable mountainBOT
#
You're the boss!

Your reminder will arrive on <t:1715639345:F>!

tame pebble
vocal wolf
#

nothing happened :)

tame pebble
#

I played myself

#

Classic

vocal wolf
#

that's the way it do even tho it be

plush birch
#

I'm trying to set up sir-lancebot for development, but pydantic yells at me when I try to run it. I cloned the project, installed the dependencies, and made /.env

$ poetry run task start
Traceback (most recent call last):
  File "<frozen runpy>", line 189, in _run_module_as_main
  File "<frozen runpy>", line 148, in _get_module_details
  File "<frozen runpy>", line 112, in _get_module_details
  File "/home/user/Projects/python/sir-lancebot/bot/__init__.py", line 8, in <module>
    from bot import log
  File "/home/user/Projects/python/sir-lancebot/bot/log.py", line 14, in <module>
    from bot.constants import Client, GIT_SHA, Logging
  File "/home/user/Projects/python/sir-lancebot/bot/constants.py", line 97, in <module>
    Client = _Client()
             ^^^^^^^^^
  File "/home/user/.cache/pypoetry/virtualenvs/sir-lancebot-68i5Ys5H-py3.12/lib/python3.12/site-packages/pydantic_settings/main.py", line 84, in __init__
    super().__init__(
  File "/home/user/.cache/pypoetry/virtualenvs/sir-lancebot-68i5Ys5H-py3.12/lib/python3.12/site-packages/pydantic/main.py", line 171, in __init__
    self.__pydantic_validator__.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 1 validation error for _Client
token
  Field required [type=missing, input_value={}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.6/v/missing
patent pivot
#

very interesting!

i don't know that we pull in the .env file by default unless you are running in Docker (in which case docker pulls it in), if you source .env the file can you run the bot?

patent pivot
stable mountainBOT
#

docker-compose.yml lines 21 to 22

env_file:
  - .env```
plush birch
patent pivot
#

try source .env before you run the poetry command

#

if still no luck, do source .env, then run echo $CLIENT_TOKEN and can you confirm if it outputs the discord bot token you've configured

plush birch
#

Oh it was user error lol, I put BOT_TOKEN instead of CLIENT_TOKEN

#

Works now, thanks!

patent pivot
#

hahaha all good, glad that's fixed 🙂

#

i also forgot i think we do load .env with pydantic, so yes should work without needing to source, which it sounds like it has in your case

stable mountainBOT
tame pebble
stable mountainBOT
#
Can do!

Your reminder will arrive on <t:1715812993:F>!

plush birch
#

Me when my alarm goes off

patent pivot
#

FYI to core devs and contribs, policy bot has moved home to https://policy-bot.pydis.wtf/, should be seamless, all PRs should start linking to the new URL, if you click the link at the bottom of your PRs it will also push an update to github to force from pythondiscord.com -> pydis.wtf, if you experience any weirdness with it please let me know but should be more or less invisible, all old URLs will redirect to the new domain.

vocal wolf
tame pebble
#

@timid sentinel sorry about that, the changes I made after the force push are

  • renamed ROLL_EMOJI to DICE_ROLL EMOJI
  • Removed the comments that explained those emojis as it's not as useful
vale ibex
#

fwiw I usualy forcepush teh change, then then forcepush teh rebase as a seperate action

#

that way github has the two diffs,t he first being the useful one for reviewers

tame pebble
#

Or, if you haven't modified the history in some way

vale ibex
#

and then separately forcepush a rebase onto main

tame pebble
#

aaah i see what you mean

#

ok

#

makes sense

stable mountainBOT
rapid swallow
stable mountainBOT
#
Sure.

Your reminder will arrive on <t:1715998177:F> and will mention 1 other(s)!

tame pebble
rapid swallow
stable mountainBOT
patent pivot
clever wraith
#

hey apparently i got unassigned fro bot#2679 while waiting for new version of pinnwand but i see Chris added it few days ago can you assign me again?

dusky shoreBOT
lean summit
#

Not sure if this is right place but https://paste.pythondiscord.com/ has severe asyncio blocking problems.
It can take upwards of 30s to download 4kb worth of data.

I haven't really looked into the issue but it seems that this is happening because although Tornado is async, and the routes are coroutines, everything else is sync (including the calls to the database).

patent pivot
lean summit
#

Ya so interestingly it can take between 1.5s best case and 30s (worst I've seen)

#

As for the database stuff

#

Looking at the codebase it appears to be all sync

#

This was taken earlier when I first realised the issue

#

But even really 1.5s would be considered quite slow for a small paste/data to be downloaded

patent pivot
#

hmmm

#

that is odd

#

we should probably double check it is not our database queries

lean summit
lean summit
#

SQLAlchemy does have a asyncio version

#

Again even though I haven't delved too deep into the issue this sorta behaviour would be what you'd expect when a coroutine/task/future is streaming data but gets blocked at each chunk

tame pebble
#

So it's not that

#

There's nothing blocking in the code base

#

Due to the async nature

lean summit
#

If I am looking at the correct codebase it looks like you don't?

tame pebble
#

The problem, like Joe said, is that it might be related to a cluster migration we had

#

And we're suspecting network latency

tame pebble
patent pivot
#

i think best start is to just benchmark the queries

#

if the queries take a long time, async isn't going to fix anything

patent pivot
#

this also really doesn't seem like a problem async would solve

lean summit
#

I mean it would unless you are using a shit tonne of workers

#

Lets say I need to stream 10 chunks of data

#

Everytime the future yields back to the event loop and processes another waiting coroutine, if a singular coroutine blocks for 1s each yield, I have to wait for each chunk by a minimum of 1s which result in a 10s page load

patent pivot
#

looking through logs on our side, i cannot at all see any requests taking this latency

#

pinnwand is responding in milliseconds

lean summit
#

The route maybe be returning the streaming response within ms ya

#

The HTTP connection doesn't close at this point though

patent pivot
#

testing with curl on the pinnwand server, it's giving me the full response in milliseconds

lean summit
#

Idk tornado either but it's creating a streaming future by the looks

patent pivot
#

i'm requesting every paste randomly in the db and getting consistently okay times

lean summit
#

Ya idk then but even if you are having problems somewhere else along the line (I don't see any use of an async database driver) unless I am dumb and I wouldn't not change that

sweet fern
#

I concur with Mysty, if using tornado, you really should be using async drivers and asyncio.to_thread where applicable to prevent any potential blocking.

Just for general good practice.

patent pivot
#

I will also say, this is not our service lol

#

we run pinnwand and fork it to add some small modifications to enable different db drivers for Postgres, we otherwise have no additional modifications

#

any improvements really need to be added to the upstream pinnwand which is a little inactive

last patio
#

maybe its a conn pool that takes some time to open

timid sentinel
#

There are a few PRs on bot that are waiting on a second review, from oldest to newest:
bot#2973
bot#2999
bot#3005
bot#3017

(if we get them all merged we'll be sub 100 open issues :O)

patent pivot
#

PR #3000 HELL YEAH!

rapid igloo
rapid swallow
#

I don't always cook, but when I do, it's to show up robin

patent pivot
rapid igloo
plush birch
#

While we're at it, sir-lancebot#1148 from 2022 still needs review

uncut zodiac
#

how do I import a csv file to my sql workshop through python?

versed umbra
#

can someone help me with a django problem i'm a begginer

sharp crag
rapid swallow
stable mountainBOT
#

:incoming_envelope: :ok_hand: applied timeout to @hallow aspen until <t:1716763137:f> (10 minutes) (reason: duplicates spam - sent 4 duplicate messages).

The <@&831776746206265384> have been alerted for review.

clever wraith
#

#bot-commands message

bot#2679
actually should it support multiple files cause would i send multiple code blocks?

dusky shoreBOT
atomic ivy
patent pivot
#

if a paste gets posted, we attempt to fetch it, if it exists, we relay. if it doesn't/is expired, we abort

atomic ivy
#

if a paste expires, but it was posted before, what happens to that message?

patent pivot
#

nothing -- we keep it up

#

if a paste existed and was shared, it is reasonable enough to assume that at the point the paste became public

#

we are not relaying hidden pastes, only ones people are knowingly sharing into the discord server

#

the expiry is a measure of data minimization, not a privacy or security one

atomic ivy
#

fair point

clever wraith
clever wraith
hollow sonnet
#

Hi! I'm diving into cpython#119886, which aims to correct the behavior of follow_symlinks argument in os.link. However, there is a serious problem currently:
In WASI linkat has no such option and the only behavior is !AT_SYMLINK_FOLLOW (i.e., Not follow symbolic links), but the default value of that argument is True. So we must do one of the following two:

  1. Modify the default value of that argument into False.
  2. Leave that default value True and modify test code a lot.

Which one is preferred?

tame pebble
# hollow sonnet Hi! I'm diving into [cpython#119886](https://github.com/python/cpython/pull/1198...

Hello,

I think there's a confusion here.

This server is for python related projects, but we're not the core python contributors.

We're a community that offer help with projects that use python, but we are not really involved in the development of python itself.

You can have a look at our projects here if you'd like: https://github.com/python-discord/
We welcome contributions to all of our projects

GitHub

The hottest Python community on the planet! Python Discord has 63 repositories available. Follow their code on GitHub.

hollow sonnet
#

I'm so sorry for that. btw are there other servers for python itself development? Thanks

tame pebble
#

There is nothing to be sorry about, do not worry

vale ibex
timid sentinel
full fractal
#

the bus is merciless

fallow trail
#

Want to learn django. Where to start?

last patio
clever wraith
#

Sup everyone!
I just learned if, elif, & else statements.

Coding used to make no sense, until i thought about things as parts to whole. Lots of small parts, some inside other parts. I got it from looking at software architecture images.

Also, thinking about coding as data & algorithms helped things make sense.

Hope this helps someone ❤️💻❤️

#

I think the wider perspective gave me an answer to the question: "What is this for??"

last patio
#

Hi, happy to hear about your learnings. But this is absolutely the wrong channel for that, this is contribution discussion for our internal projects

tepid blaze
#

Hi, I want to start contributing to open source projects but wanted to ensure that my skills woul be up to par before anything. What would yall recomend?(dunno if this is the right channel for this)

tame pebble
#

!contribute

stable mountainBOT
#
Contribute to Python Discord's open source projects

Looking to contribute to Open Source Projects for the first time? Want to add a feature or fix a bug on the bots on this server? We have on-going projects that people can contribute to, even if you've never contributed to open source before!

Projects to Contribute to

  • Sir Lancebot - our fun, beginner-friendly bot
  • Python - our utility & moderation bot
  • Site - resources, guides, and more

Where to start

  1. Read our contribution guide
  2. Chat with us in #dev-contrib if you're ready to jump in or have any questions
  3. Open an issue or ask to be assigned to an issue to work on
tame pebble
#

Have a read at this, then browse the issues we have and ask to get assigned.

The projects that's commonly need to contribution are site, bot and sir-lancebot

vale ibex
#

@timid sentinel annoyingly adding that package doesn't actually stop the warning from appearing 😂

#

I see it often in my personal projects

#

So the PR you have done will be needed at some point when they remove the plugin, but doesn't stop the warning itself until then

timid sentinel
#

I hate poetry 😩

#

but yeah that sounds fine

atomic ivy
#

it's good to have that plugin explicitly installed though

vale ibex
#

there is a config entry, and an env var you can set to stop the warning fwiw

vale ibex
timid sentinel
#

probably not worth ignoring the warning tbh

vale ibex
#

yeah, it'll fix itself eventually

grim prairie
#

So, moderation action commands take a user id... But is there any way that the bot could accept an action as a reply instead of the moderator supplying the user id? See: #python-discussion message

I feel like the bot could be improved here.

vale ibex
#

The reason for requiring a user id was to avoid accidental infractions.

If we were to allow replies to work like this, then it's highly likely at some point a mod will reply to the wrong message and infract an innocent 3rd party.

#

Since all it takes is for someone to send a message just before the mod left clicks and someone else's message to pop up under their mouse cursor.

thorny obsidian
#

I specifically don't want reply-infractions to work. It's not uncommon for me to start replying to someone's python question and halfway through I need to infract someone else. I don't want to accidentally infract the person I was originally replying to

patent pivot
#

@vale ibex hello young man

#

can we release 11.2.0 to pypi

vale ibex
#

!remind 1h this

stable mountainBOT
#
Affirmative!

Your reminder will arrive on <t:1719073971:F>!

stable mountainBOT
obsidian patio
#

Our https://pythondiscord.com landing page seems to be in need of a little update. I'm not sure what would go there since the 2024 CJ doesn't seem to be ready yet, but maybe you here in #dev-contrib have some ideas?

patent pivot
#

we may just have a design/have previously left that area empty

#

that is what was in my memory

cold island
#

There's a version where the intro video is centered somewhere in the git history

#

I think I opened a PR that recentered it after the 22 cj

grim prairie
#

So, usernames in certain languages cause text to be changed and right justified. That messes up bot commands in mentions.

See #1255508982186115122 message

#

I'm not sure there's a great solution for that... It's just... Surprising

outer oasis
#

!rule 5 @outer oasis

stable mountainBOT
#

5. Do not provide or request help on projects that may violate terms of service, or that may be deemed inappropriate, malicious, or illegal.

outer oasis
#

There's nothing we can do about how Discord displays RTL text anyways

#

But it handles bot commands fine if you invoke the bot correctly

signal hedge
#

hi i made PR solving the issue #3077

patent pivot
#

hmmm i think this is sort of implemented backwards

#

the issue specifies ```
When a deleted message is logged in #message-change-log, also add a link to the message it was replying to

#

from my understanding and reading of this, say we have:

Message A
Message B [Reply to Message A]

what we are looking for is when Message B gets deleted we additionally say in the log "was a reply to Message A"

#

i'm confused about the wording here

#

this log is only logging things that remain in discord, i mean it's definitely useful, but the original issue is saying to log what a deleted message itself was replying to, not what has replied to it right?

#

ahhh i see it looks like both of these are implemented

signal hedge
cold island
#

I think I would rather stick with what the issue described as well for now. You also don't need any API requests for it: Get the ID of the replied message, check if it's in the cache, and get the content from it if available

patent pivot
#

turning message delete embeds from carrying one messages content to carrying one and maybe another one seems like it's going to confuse compared to just putting the jump link in for what it was replying to

#

if that gets deleted, there will be a separate log for it

cold island
#

Got confused about the scope of the issue

#

Basically just link to the replied message then

signal hedge
#

alright then ill remove the gather_reply() thing

signal hedge
#

i have pushed the suggested changes in the PR !

haughty oar
#

Why does discord not show the server icons only a few of them? Discord on a desktop. My mobile discord has no issue.

vale ibex
signal hedge
vocal wolf
normal linden
signal hedge
pastel drum
#

Guys, any beginner-friendly open source going on right now? I'm kinda of interested in this kind of experience

wind ruin
#

You can participate in the Code Jam and team up with other members (see: #announcements ), which is not quite the same but somewhat similar

Other than that, you can find our repositories and the contributing guidelines in the channel's description - it's very rare for there to ever be things "going on" in open source, maybe excluding events like Hacktoberfest

tired steeple
vale ibex
#

lgtm

rapid swallow
vale ibex
#

bot#3074 @timid sentinel do you remember why you marked this as a draft?

dusky shoreBOT
timid sentinel
#

I think I was going to have a look to see if there were any more chances worth making, but I think it's good as is, merged

clever wraith
#

hey i would like to ask a question

#

is there someone who has much knowledge about python

vale ibex
#

I imagine there are many people with knowledge about Python on this server

#

Did you have a specific question?

outer oasis
#

!rule ad

stable mountainBOT
#

6. Do not post unapproved advertising.

signal hedge
rapid swallow
#

Sorry, got a bit busy with life and all that
I'll try to review it tomorrow or the day after

stable mountainBOT
#
Alright.

Your reminder will arrive on <t:1720839771:F>!

stable mountainBOT
rapid swallow
signal hedge
tawdry wagon
stable mountainBOT
#

:incoming_envelope: :ok_hand: applied timeout to @tawdry meadow until <t:1721133455:f> (10 minutes) (reason: duplicates spam - sent 4 duplicate messages).

The <@&831776746206265384> have been alerted for review.

celest charm
#

Micro pull request python-discord/bot-core#254

dusky shoreBOT
celest charm
#

not sure if I'm supposed to bump the version or if that'll happen separately

timid sentinel
timid sentinel
rapid swallow
#

AFAIK a core-dev has to manually bump the version and upload to pypi

vale ibex
#

it be done

sharp crag
outer wraith
#

!rule ad

stable mountainBOT
#

6. Do not post unapproved advertising.

olive cloak
#

I was trying to add snekbox to my compose.yaml and I got this :?
No such image: pythondiscord/snekbox-venv:latest

#

got the same with ghcr.io/python-discord/snekbox

vale ibex
olive cloak
#

Error response from daemon: No such image: ghcr.io/python-discord/snekbox:latest

#
services:
  snekbox:
    container_name: snekbox
    hostname: snekbox
    privileged: true
    image: ghcr.io/python-discord/snekbox:latest
    pull_policy: never
    ports:
     - "8060:8060"
    init: true
    ipc: private
    tty: true
    environment:
      SNEKBOX_DEBUG: 1
      PYTHONDONTWRITEBYTECODE: 1
    volumes:
      - .:/snekbox
      - user-base:/snekbox/user_base

volumes:
  user-base:
vale ibex
#

well, yea pull_policy: never

olive cloak
#

I should mention that I'm not very experienced with docker :)

#

oh

vale ibex
#

that means it will never attempt to pull from the internet, and will only look locally

olive cloak
#

Ah that makes sense lol, I copied the snekbox repo's compose.yaml

vale ibex
#

Yeah, that's because it has the build section to build it locally

olive cloak
#

thank you

jolly gust
#

HI all

vale ibex
#

hello

hoary haven
#

idea i'm throwing out there, from @lucid orbit: have !topic command somehow prompt OP to confirm on a topic before it actually sends the message? otherwise people in chat might just watch the topic get refreshed a dozen times before it gets finalized. something to think about

lucid orbit
patent pivot
#

would require us moving from !topic to /topic and doing it via slash commands if we want ephemeral messages but this is very doable

storm niche
#

What is happening in here?

tame pebble
storm niche
#

I want to learn so if I can do something here? I am new in Python.

#

@tame pebble

tame pebble
#

!contribue

stable mountainBOT
#
Contribute to Python Discord's open source projects

Looking to contribute to Open Source Projects for the first time? Want to add a feature or fix a bug on the bots on this server? We have on-going projects that people can contribute to, even if you've never contributed to open source before!

Projects to Contribute to

  • Sir Lancebot - our fun, beginner-friendly bot
  • Python - our utility & moderation bot
  • Site - resources, guides, and more

Where to start

  1. Read our contribution guide
  2. Chat with us in #dev-contrib if you're ready to jump in or have any questions
  3. Open an issue or ask to be assigned to an issue to work on
tame pebble
#

You will find all the info you need for contribution here

storm niche
storm niche
tame pebble
storm niche
royal prawn
#

the open-source projects category is for python-related third-party programs that use this discord as a conversation host

royal prawn
#

the development category, which this channel is in, is for improvements to python discord itself - and the stuff that supports it, like the website and various bots

tall moat
tawdry wagon
#

just to be sure, this is wrong, right?

still comet
stable mountainBOT
#

bot/exts/moderation/silence.py lines 231 to 232

async def _set_silence_overwrites(self, channel: TextOrVoiceChannel, *, kick: bool = False) -> bool:
    """Set silence permission overwrites for `​channel`​ and return True if successful."""```
`bot/exts/moderation/silence.py` lines 313 to 315
```py
async def _unsilence(self, channel: TextOrVoiceChannel) -> bool:
    """
    Unsilence `​channel`​.```
tawdry wagon
#

perhaps typing rewrite for the Bot source code?

cold island
tawdry wagon
still comet
tawdry wagon
still comet
tawdry wagon
#

I mean it should be fine, not so much out of scope, but given that it seems like typings is not something for this repo i can leave them wrong if fixing them is an issue 😐

cold island
cold island
#

Fixing type hints is very much appreciated, didn't mean to say otherwise

hoary haven
still comet
dusky shoreBOT
hoary haven
#

woot woot

dim pelican
#

Hello, your message was removed for violating rule 6

sweet perch
#

Hello im new I want to contribute to the statistics.py is this channel only for the projects related to discord?

cold island
sweet perch
cold island
#

Not a general channel. If #web-development is related to what you want to do you can discuss it there

#

Every channel has a description for what it's for

tepid niche
#

Since the #dev-branding channel is no more, I want to repost my suggestion / plea to stop frequently changing the server's icon in an effort to make it / this server more recognizable.

I forget this server exists 99% of the time, even though it's always visible in my server list, because I can't effortlessly pick it out. With good branding comes easy recognition, and the current system voids that premise entirely.

Accessibility was also another concern of mine, as the main non-themed logo has poor contrast. For a visually impaired person, it could look like a blue blur with no defining features.

Here is my design and suggestion which has been approved for use and resale (on merch) by the Python Software Foundation trademark team.

patent pivot
#

Right now I don't think we're interested in a larger brand shift to a logo as drastically different as that. That's not to say we can't find other ways to improve contrast on the current logo, I don't think from memory we've had much feedback from those who are visually impaired regarding the current logo design.

There have been conversations about changing the branding less frequently or in ways which preserve easy recognition (i.e. keeping the first frame static/only changing half the frame for the first frame) which I'll ensure we explore in a staff meeting. The blue Python logo is our brand and is not just what we use on Discord but is our online presence everywhere, hell, I have a COVID mask and a jumper of it, Theelx has a dress of it. I don't think right now we want to make a drastic shift from that but I will raise this internally and link to this post so we have a talk about ways to improve things.

trim cradle
tepid niche
# patent pivot Right now I don't think we're interested in a larger brand shift to a logo as dr...

I'm genuinely not seeing any valid reason to be denying this feedback this sternly and without any further polling/surveying from your community. Your statement where you say "I don't think.." in regards to other feedback demonstrates this.

The reasons given thus far have been very personal to current staff. It makes this matter feel like like a 'Staff vs Me' issue, when the reality of it is I'm speaking for a broader population. I always have been, because I definitely wouldn't be putting this much effort in if it was a small scale issue.

The lack of other feedback on the matter, and also lack of anyone else entering this conversation - considering the server's size - also raises concern.

Is leaving feedback accessible in itself? Going through the server's info channels and website, it doesn't seem to mention "feedback" and only references this channel in the context of specific contributions. Now that I'm realizing this, I feel like I can see the issue as clear as day.

trim cradle
tepid niche
#

It's also less about the frequency, and more about design choice. Like how I've suggested before that the base logo could remain the same, and it's only the background that changes.

trim cradle
#

I just looked over the survey responses on that question for 2023.

57% says it changes just often enough.
12% said it changes too often.

The rest were write-in responses, most of which were variations of "don't care" or complaints about the pride branding.

Two people said that the logo changes makes it hard to find the server.
One person said the logo changes don't make it hard to find the server because the shape stays the same.

cold island
#

@tepid niche You raised the topic in #community-meta which led to a conversation there. You then raised the topic in dev-branding which led to another conversation which involved every one of the (at the time) Directors at some point. It was then raised internally, and we discussed it more. It was then brought to a staff meeting, where we discussed it more, then voted on it.

I think we've done our due diligence to properly consider a suggestion made by a community member.

At some point, you need to accept our response even if it disappoints you.

tepid niche
#

Alright. I'm just not a fan of the your team's process

#

Fun fact I lost the server 4 times in the last hour and in the middle of this conversation joy_bass_boosted_vip_extended

cold island
#

ctrl+k "dev-contrib" should help if you're on desktop

patent pivot
# tepid niche I'm genuinely not seeing any valid reason to be denying this feedback this stern...

Didn't mean to make it sound like I'm immediately shitting you down, I'm just saying our blue is the entire brand we're built on. I'd rather we investigate ways to make that accessible than switch the hundreds of locations where we currently use blue branding to something violently different. I get the visual impaired thing, I'm incredibly colourblind myself and have struggled with things like this my entire life. I'll let the other people here continue this discussion, I was just voicing a mostly personal opinion that a large branding shift is not in the interest of the community at large when it comes to its place within the wider Python community, but am not at all ruling anything out.

#

I'm more saying I don't believe the proposed design is something to adopt, I'm not at all offering views on anything external to that.

stable mountainBOT
#

:incoming_envelope: :ok_hand: applied timeout to @novel nova until <t:1723990359:f> (10 minutes) (reason: burst spam - sent 8 messages).

The <@&831776746206265384> have been alerted for review.

novel nova
#

dude

#

what 😭

cold island
novel nova
#

or my discord was

devout sand
#

the bot being weird? Not sure what specifically the issue

devout sand
stable mountainBOT
#

bot/exts/help_channels/_channel.py line 45

async def _close_help_post(closed_post: discord.Thread, closing_reason: _stats.ClosingReason) -> None:```
celest charm
#

so opening this link from discord does not work

tawdry vapor
stable mountainBOT
#

bot/exts/info/python_news.py line 31

r"|(?P<markdown>(?<!\\)[_|])",  # matches unescaped `​_`​ and `​|`​```
tawdry vapor
#

Hmm no, I think the regex is fine. We do want to escape this. The escape should work, but Discord covers the back slash into a forward slash as you point out. I'm not sure there is anything we can do about this directly.

A workaround is to make the link a markdown link like [thing](https://). All we have is raw text, so we'd have to detect URLs in it ourselves.

#

Please open a GH issue so we can keep track of this.

stable mountainBOT
#

bot/exts/info/python_news.py line 12

random grail
#

Ah yes

#

Information

cold island
novel nova
cold island
novel nova
#

i see

obsidian patio
#

We should probably redirect the webhooks from #dev-branding (dev-branding) to here

vale ibex
#

removed the webhook from the archived channel now too

clever wraith
#

@vale ibex
I made a pr and I hope it gets approved, I really tried to make it good! I basically cloned the repo, changes it, then forked the original, and uploaded the changes! I spent a while reading the contribution guild lines and --I think it passes---

vale ibex
dim pelican
#

Hello, this channel is for discussion about our open source projects: https://git.pydis.com/

Also please follow rule 4 while in the server

#

Also you may want to read the top part of #voice-verification , spamming to reach your message count will result in a temporary voice ban

vale ibex
sleek veldt
#

yo i need help on git hub can yall join a 2 min call

vale ibex
sleek veldt
#

not discord repo

sleek veldt
vale ibex
#

ah, this channel is for discussing Python Discord repositories specifically

sleek veldt
#

ight

cloud bramble
#

hi, where is the source for the !kindling command?

tame pebble
#

The bot tries to find tags when commands do not exist

#

it's a fallback strategy, in some way

cloud bramble
tame pebble
#

It's based on fuzzy matching i think

#

have a look at the tags cog

#

!source Tags

stable mountainBOT
#
Cog: Tags

Fetch tags by name or content.

Source Code
tiny sinew
#

I was checking sir-lancebot uwu command for fun, but i have a question:

        await clean_content(fix_channel_mentions=True).convert(ctx, text)

Why is this function called if the return value is not used, what am i missing?

#
  1. not using the returned value
  2. using the returned value
vale ibex
#

likely an oversight when it was written, feel free to open a PR to fix it

wind ruin
#
  • that is not on topic for this channel
  • we will not help you bypass cloudflare or other captcha/anti-bot protections, if they are blocking you it is clear you're not supposed to be doing that
atomic ivy
#

!rule 5

stable mountainBOT
#

5. Do not provide or request help on projects that may violate terms of service, or that may be deemed inappropriate, malicious, or illegal.

fallen patrol
atomic ivy
#

hi, this channel is for discussing this server's projects, not for discussing Python projects in general.

strong peak
atomic ivy
strong peak
#

Ok, thanks

placid ibex
#

or would it be reasonable to delegate latex functionality to a different bot instead of homebrewing the refresh function?

still comet
#

the refresh function will also be used in !eval if I'm not mistaken so I think it makes sense to keep it

#

i'm not sure what can be done about the stale PR though

fringe torrent
#

Hi everyone

stable mountainBOT
#
It has arrived!

Here's your reminder: check site#698
[Jump back to when you created the reminder](#dev-contrib message)

sharp crag
#

lmao

atomic ivy
#

!rule ad

stable mountainBOT
#

6. Do not post unapproved advertising.

atomic ivy
#

This channel is for discussing this server's projects

visual sapphire
#

!rule violation

stable mountainBOT
#

The rules and guidelines that apply to this community can be found on our rules page. We expect all members of the community to have read and understood these.

clever wraith
placid ibex
#

😭

lyric gorge
vale ibex
lyric gorge
#

this is the request that been posted to /eval

{
    "input": "Hello, world!",
    "args": ["main.py"],
    "files": [
        {
            "path": "main.py",
            "content": "VGhpcyBpcyB0aGUgY29udGVudCBvZiBmaWxlMS50eHQu"
        }
    ],
    "executable_path": "/usr/local/bin/python"
}

(I have two jsons I use to test, but no matter what both fail with the same error)

vale ibex
lyric gorge
#

yeah I am disappointed

#

thanks chris

vale ibex
#

you can replace 3.12 with 3.13, 3.13t or default

lyric gorge
#

I will keep that in mind. I greatly appreciate it

topaz depot
#

hello, am trying to import "speech_recognition" and its not working, I tried looking for a solution but all i could find were out dating or not working. Can I get assistance please.

gloomy moss
#

Spelling seems to be incorrect - can you recheck

topaz depot
#

it is correct

#

but your right

gloomy moss
#

you are missing an 'i'

topaz depot
#

thank you very much

gloomy moss
#

👍

topaz depot
#

sorry, I met another problem.

#

i dont know what amo wrong, can i get help

atomic ivy
#

@topaz depot, @gloomy moss, this channel's purpose is to discuss this Discord server's projects.
See #❓|how-to-get-help to understand how to get help with your own code.

topaz depot
#

Thank you

#

Sorry

sullen verge
#

I'm looking for some reference, what settings do python discord repos use? for stuff like branch protection rules, PR merge method, etc

tawdry vapor
forest whale
#

#bot-commands

paper portal
trim cradle
solemn cradle
#

hi

#

Who can I ask for help with Python coding?

near sonnet
hollow stream
tame pebble
bleak granite
#

Hey guys! I made a python module for managing CSVs and using their data within other apps. The need arose while I was doing something else, and I couldn't find anything similar, and my hope is that this can be useful to anyone else. I'd love if anyone had any pointers on what needs improvement.

#

and I have a readme i can share if it will let me

bleak idol
outer oasis
#

@vale ibex got pinged that you merged bot#3194
Wanna go ahead and merge the duplicate sir-lancebot#1627 ?

royal prawn
#

chris is on a pr merging spree, huh. merged another of mine, too

vale ibex
#

yeah

atomic ivy
#

This channel is for discussing this Discord server's projects, so your message is off-topic.

clever wraith
atomic ivy
clever wraith
trim cradle
#

Who implemented this?

fervent sage
#

"oh it can't be too hard using git blame to find"
yes it can if you do it wrong like I did! kek

tawdry vapor
cold island
vale ibex
#

I agree

edgy terrace
#

Hello Want some help

celest charm
#

python-discord/branding#201
Ale fajny bober 🥺🥺

dusky shoreBOT
celest charm
obsidian patio
modern path
#

🦫

thorny obsidian
#

thanks @woeful basin for the PR!

celest charm
#

Before I thought this feature was slightly annoying. But now that Discord increased reaction sizes, it's very annoying! It more than doubles the size of a short message. Maybe we could leave the reactions for clearly christmas-related words like christmas and santa, but remove the trigger for tree? Trees are very common in programming

trim cradle
#

Can we get plotly installed in snekbox?

outer oasis
dusky shoreBOT
trim cradle
patent pivot
#

How do we nicely get data in and out of plotly?

trim cradle
patent pivot
#

lol ya that works

#

what was the other dep needed for pngs

trim cradle
patent pivot
#

hmm

#

why old version

trim cradle
#

new version causes fig.to_image('png') to hang forever

patent pivot
#

amazing

#

sorting as mark said would be nice but otherwise lgtm

outer oasis
#

look ma im famous

outer oasis
#

Or — is everything else already sorted?
I didn’t actually check firHide

trim cradle
#

I think of the requirements file as append only so that it can be like cryptocurrency ||/s||

tawdry vapor
#

Yes the other dependencies were sorted. You've introduced chaos to our orderly list of dependencies

patent pivot
outer oasis
#

I have promptly rectified my transgressions

trim cradle
#

I'm going outside, but I assume everything will be okay

patent pivot
trim cradle
#

!e import plotly

stable mountainBOT
# trim cradle !e import plotly

:x: Your 3.12 eval job has completed with return code 1.

001 | Traceback (most recent call last):
002 |   File "/home/main.py", line 1, in <module>
003 |     import plotly
004 | ModuleNotFoundError: No module named 'plotly'
trim cradle
#

@patent pivot when is it going to happen

patent pivot
#

!e import plotly

stable mountainBOT
# patent pivot !e import plotly

:x: Your 3.12 eval job has completed with return code 1.

001 | Traceback (most recent call last):
002 |   File "/home/main.py", line 1, in <module>
003 |     import plotly
004 | ModuleNotFoundError: No module named 'plotly'
patent pivot
#

lol

#

hmmmm

#

oh ci still running

#

give it a min

#

snekbox CI takes ~30 mins

trim cradle
#

!e import plotly

stable mountainBOT
# trim cradle !e import plotly

:x: Your 3.12 eval job has completed with return code 1.

001 | Traceback (most recent call last):
002 |   File "/home/main.py", line 1, in <module>
003 |     import plotly
004 | ModuleNotFoundError: No module named 'plotly'
trim cradle
#

I blame freethreading

patent pivot
#

lmfao it's getting there

#

this has definitely got worse

#

i don't know why

#

ETA 13 minutes i'd guess

trim cradle
#

!e

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x='sepal_length', y='petal_length')

with open('./foo.png', 'wb') as out:
    out.write(fig.to_image('png'))
stable mountainBOT
trim cradle
#

@patent pivot FUCK

#

!e

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df.head(10), x='sepal_length', y='petal_length')

with open('./foo.png', 'wb') as out:
    out.write(fig.to_image('png'))
stable mountainBOT
trim cradle
#
In [12]: %timeit fig.to_image('png')
24 ms ± 352 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

on my machine

patent pivot
#

lmfao

#

uhhh

#

!e print("hi")

stable mountainBOT
patent pivot
#

!e

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df.head(10), x='sepal_length', y='petal_length')

with open('./foo.png', 'wb') as out:
    out.write(fig.to_image('png'))
stable mountainBOT
patent pivot
#

lmfao

#

amazing

#

hmmmm

trim cradle
#

!e

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x='sepal_length', y='petal_length')
fig.write_image('./foo.png')
stable mountainBOT
patent pivot
#

it is def a memory kill

#

not a time one

trim cradle
#

!e

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x='sepal_length', y='petal_length')
stable mountainBOT
patent pivot
#

oh wait is it just loading the iris dataset that's the problem lol

trim cradle
#

!e

import plotly.express as px
df = px.data.iris()
stable mountainBOT
trim cradle
#

no

patent pivot
#

!e

import plotly.express as px

df = px.data.gapminder().query("country == 'Canada'")
fig = px.bar(df, x='year', y='pop',
             hover_data=['lifeExp', 'gdpPercap'], color='lifeExp',
             labels={'pop':'population of Canada'}, height=400)
with open('./foo.png', 'wb') as out:
    out.write(fig.to_image('png'))
stable mountainBOT
trim cradle
#

I guess plotly is a memory hog.

patent pivot
#

oh yea i knew that, but didn't realise it was that bad lol

#

!e

import plotly.graph_objects as go
animals=['giraffes', 'orangutans', 'monkeys']

fig = go.Figure([go.Bar(x=animals, y=[20, 14, 23])])
with open('./foo.png', 'wb') as out:
    out.write(fig.to_image('png'))
stable mountainBOT
# patent pivot !e ```py import plotly.graph_objects as go animals=['giraffes', 'orangutans', 'm...

:x: Your 3.12 eval job has completed with return code 1.

001 | Traceback (most recent call last):
002 |   File "/home/main.py", line 6, in <module>
003 |     out.write(fig.to_image('png'))
004 |               ^^^^^^^^^^^^^^^^^^^
005 |   File "/snekbox/user_base/lib/python3.12/site-packages/plotly/basedatatypes.py", line 3772, in to_image
006 |     return pio.to_image(self, *args, **kwargs)
007 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
008 |   File "/snekbox/user_base/lib/python3.12/site-packages/plotly/io/_kaleido.py", line 143, in to_image
009 |     img_bytes = scope.transform(
010 |                 ^^^^^^^^^^^^^^^^
... (truncated - too many lines)

Full output: https://paste.pythondiscord.com/IUVM2OVH5634NTDSVDQRD46E6U

patent pivot
#

amazing lol

#

wait

#

LMFAO

#

okay

#

this will never work

#

it needs fucking headless chromium

#

plotly generates its images by booting a chrome instance and taking a screenshot LOL

trim cradle
#

LOL

patent pivot
#

!e

import plotly.graph_objects as go
animals=['giraffes', 'orangutans', 'monkeys']

fig = go.Figure([go.Bar(x=animals, y=[20, 14, 23])])
with open('./foo.png', 'wb') as out:
    out.write(fig.to_image('pdf'))
stable mountainBOT
# patent pivot !e ```py import plotly.graph_objects as go animals=['giraffes', 'orangutans', 'm...

:x: Your 3.12 eval job has completed with return code 1.

001 | Traceback (most recent call last):
002 |   File "/home/main.py", line 6, in <module>
003 |     out.write(fig.to_image('pdf'))
004 |               ^^^^^^^^^^^^^^^^^^^
005 |   File "/snekbox/user_base/lib/python3.12/site-packages/plotly/basedatatypes.py", line 3772, in to_image
006 |     return pio.to_image(self, *args, **kwargs)
007 |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
008 |   File "/snekbox/user_base/lib/python3.12/site-packages/plotly/io/_kaleido.py", line 143, in to_image
009 |     img_bytes = scope.transform(
010 |                 ^^^^^^^^^^^^^^^^
... (truncated - too many lines)

Full output: https://paste.pythondiscord.com/N4G3647UBTP6IRE5LMXVHIIT6I

patent pivot
#

yea no this could be a no-go unfortunately

trim cradle
#

it probably wouldn't be worth it, but I'm curious: what if there were a headless chromium process running in the snekbox container that's just always ready?

patent pivot
#

mmm

#

it would just be hell to integrate

#

every lib uses headless things in a slightly different way, but enough to make that a headache

#

stuff like kaleido is not using chrome

#

it's booting headless chrome through the chrome embedded framework

#

it sets its own flags, expects it to run in a certain way, etc.

#

it's like how spotify is technically chrome embedded framework under the hood but obviously is very much it's own application with its own resources

#

think of it as chrome vs. chrome sdk i guess

#

but like sdk on steroids

trim cradle
#

right

#

speaking of steroids, I'm going to the gym now

patent pivot
#

HELL YEAH GOAT!!

celest charm
#

go Figure i gues

vale ibex
#

This channel is for discussing Python Discord repositories, not for advertising your own repositories, which is against our #rules

crystal sonnet
#

!r

#

!e

timid sentinel
#

PR needing review! bot#3205

dusky shoreBOT
short dirge
vale ibex
#

If it comes up naturally in a conversation then it's fine. EG someone asking about a solution to a problem that your project solves, then it could be brought up

trail bolt
#

!e

#

import sys
#pip install PyQt
from PyQt5.QtCore import QUrl
#pip install PyQtWebEngine
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
from PyQt5.QtWidgets import QApplication, QLineEdit, QPushButton, QVBoxLayout, QWidget

class Browser(QWidget):
def init(self):
super().init()
self.initUI()

def initUI(self):
    self.setWindowTitle('Web Browser')
    self.setGeometry(100, 100, 800, 600)
    
    self.url_field = QLineEdit(self)
    self.go_button = QPushButton('Go', self)
    self.go_button.clicked.connect(self.navigate_to_url)
    
    self.view = QWebEngineView(self)
    
    layout = QVBoxLayout(self)
    layout.addWidget(self.url_field)
    layout.addWidget(self.go_button)
    layout.addWidget(self.view)
    
    self.show()

def navigate_to_url(self):
    url = self.url_field.text()
    if not url.startswith('http'):
        url = 'http://' + url
    self.view.setUrl(QUrl(url))

app = QApplication(sys.argv)
browser = Browser()
sys.exit(app.exec_())

#

dose this look right ??

trim cradle
#

I'm working on abbreviating the automatic messages when someone posts code incorrectly. I also want to remove the trashcan feature, and have it so that the message can only be dismissed by doing what it says. is that alright?

cold island
#

I don't know if we should remove the trashcan