#dev-contrib

1 messages · Page 11 of 1

clever wraith
#

There it is

clever wraith
slim widget
#

Possibly because the initial message was deleted?

sharp crag
#

Ah, no

clever wraith
#

As otherwise, it could be sent as an ephemeral message, no ?

sharp crag
clever wraith
#

Understood

#

Thank you :B

light holly
#

can scipy or opencv be added to snekbox? it's missing a 2d convolve

tawdry vapor
#

Thanks. Will try to take a look some time this week. The reason you couldn't reply on GH is because my comment is a response to a comment from a previous review. If you went to that original comment you'd be able to reply.

fossil veldt
fallen patrol
#

the test server should have forum channels now

cold island
#

About time lol

clever wraith
#

I'm curious, do we ever use dev-voice?

subtle kraken
clever wraith
#

I see I see

#

Sadge

subtle kraken
#

Suppose it could be useful for ppl that would be willing to run "sprints"

clever wraith
#

I just thought it'd be interesting to discuss dev topics concerning our projects by voice

subtle kraken
#

Theres one problem with that imo and its history, since its VC, people in future wont be aware of the discussion

#

We did a few sessions like this though, internally though iirc

clever wraith
#

And you have a point

#

I just think that

subtle kraken
clever wraith
#

Clarifying ideas os easier through voice

#

And some sort of a live interaction

#

Is*

subtle kraken
#

Suppose so, in such cases any individuals can always choose to hop in VC and talk about it

clever wraith
#

I honestly just think it's somewhat''heavy'' to say : hey I'd like to talk about this in VC

subtle kraken
#

I feel like thats unfortunately how VCs are

clever wraith
#

True!

#

Actually, after a second thought, that's debatable

#

But not a topic suitable for this channel

thorny obsidian
#

@wild prism @trim cradle

bot#2350 might interest you

dusky shoreBOT
trim cradle
#

gɪf gɪf gɪf gɪf gɪf gɪf gɪf

fossil veldt
#

bot#2326 should be ready for review now if anyone is interested

dusky shoreBOT
fossil veldt
#

otherwise general suggestions and comments are welcome as well

violet terrace
#

can I open a pull request to update the version of fishhook in snekbox? I just released a major rewrite that fixed a lot of issues with it.

tawdry vapor
violet terrace
tawdry vapor
violet terrace
#

ok, thanks

thorny obsidian
#

Hullo! While not super-duper urgent (we can always unload the cog), I would like to get this PR reviewed and merged in as soon as possible: sir-lancebot#1155

Lance's current AoC cog will break if the env vars are updated and/or when it's past Dec 1. The PR to move it to Sir Robin is merged, so we should be good to rip this out of lance.

dusky shoreBOT
worldly gate
#

I am thinking to work on Issue #2331.How to get started?Is there any wiki on creating a new Command or file structure of repo?

fossil veldt
#

you just need to make a new .md file in bot/resources/tags/, it's quite simple

#

the bot automatically parses that to make the command itself

worldly gate
#

thanks

worldly gate
clever wraith
#

@hoary haven, and anyone else who's interested
For site#807, do you think we should keep on calling them help channels, or shall we adopt the new "post" naming ?

dusky shoreBOT
hoary haven
cold island
#

and change the rest accordingly

#

The overall title is still "help channels" because it includes the topical channels

hoary haven
#

using the word "post" over channel or thread still sounds weird to me, but i think that's probably because i'm not used to it yet

clever wraith
#

Btw zig, bot#2341 is ready for your review

fossil veldt
#

I can't replicate this error locally

#
# test_integration.test_memory_limit_separate_per_process
  File "/usr/local/lib/python3.11/socket.py", line 705, in readinto
    return self._sock.recv_into(b)
           ^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: timed out
#

pithink fixed itself on a second run

tawdry vapor
#

Doesn't seem related to your changes

fossil veldt
#

I'm not sure if it's related to the fact I did a lot of pushes

#

did we get rate limited by github or something

#
Error: buildx failed with: ERROR: failed to solve: error writing layer blob: Patch "https://artifactcache.actions.githubusercontent.com/Rlhqe5dcYww1CQyMjix3SqMRt195YzCuV6HB1vb8qt4x2K3u3J/_apis/artifactcache/caches/710": read tcp 172.17.0.2:56896->185.199.109.154:443: use of closed network connection
tawdry vapor
#

Never seen that either

#

But for the socket error I think that's just trying to connect to the local gunicorn server

fallen patrol
#

I got 403s when trying to change the name of the thread that i created

#

secret behavioural change opt-in? 👀

#

like

#

i should be able to change tags after creating the thread

#

yet somehow i cannot

#

oho it might be related to the post cooldown role

#

in which case its a discord bug

#

yep, that's it

hoary haven
worldly gate
#

can anyone help in pre-hook & flake8 linting?How to do that?

clever wraith
#

Or, what are you having trouble with ?

worldly gate
clever wraith
#

Ah

#

Did you install the pre-commit hook in your local repo ?

#

Those need to run on your machine first

worldly gate
#

ok

clever wraith
#

That will show you how to install that hook locally

worldly gate
#

can you quickly explain difference between pre commit hook,flake8,poetry? what are they used for

#

linting also

clever wraith
#

Poetry is a tool that allows you to mange your application's dependencies, and to package it

#

Flake8 is a tool that runs an analysis on your code to check for styling rules

#

It enforces some styling rules that you, as a project owner, put in place

#

A pre-commit hook now, is a feature that git offers you to run certain commands/script before it executes the commit command

#

The point of our pre-commit hook is to run the flake8 check & a few others, to make sure that before you push, your code style abides to the those rules

worldly gate
#

So,I have to run only the flake8 check?

clever wraith
#

You only need to install the hook

#

& it will run everything for you

#

& i highly recommend you do that

#

So the errors you see in the build, will now exist locally

#

& it will tell you where & why it's happening

#

and thus, you'll need to fix them locally, commit & push them

worldly gate
#

ok Thanks for helping.

clever wraith
#

Sure !

worldly gate
#

I am getting this output.Is flake8 skipped because I have added a markdown file not a python file?

clever wraith
#

AFAIK, flake8 works only on .py files
There's an extension that allows it to run on markdown files
So yes, it's normal that you get that

worldly gate
#

thanks linting is passed.Now for the second part
Review requirements: main .do I have to do something or reviewers will do?

cold island
#

Reviewers

clever wraith
#

Comments for bot#2341 are resolved @cold island !

cold island
clever wraith
#

Fixed !

clever wraith
#

Hey,
I'm afraid this isn't the appropriate channel to post this

#

This channel is for contribution discussions regarding one of our projects

#

@clever wraith where can i post

fallen patrol
#

has anyone considered ruff for linting instead of flake8?

#

/pypi ruff

#

-pypi ruff

#

!pypi ruff

stable mountainBOT
fallen patrol
#

it's like, really really fast

#

mypyc compiled (I think mine is, anyways) black takes longer than ruff to format less files

#

my pre commit config can finish in under a second now if I'm just modifying a few files rather than having to wait for flake8

#

like, 20s used to be spent when I'd run pre commit on the whole repo

#

it's now around a single second, if that

gritty wind
#

We’d be losing half (like 3.5 out of 7, one is partially implemented) our plug-ins, lose access to custom or new plugins, and be locked into black style imports (not what we use)

#

If they expose flake8’s API they’d have full access to flake8’s plugins

wild prism
#

!cban 1016075879207686215 troll

stable mountainBOT
#

:incoming_envelope: :ok_hand: applied ban to @chrome quiver permanently.

muted tree
#

🫥

fallen patrol
#

the same API likely won't be exposed as that's what makes ruff so fast but they do plan to make a plugin system

gritty wind
#

That wasn’t one of the plug-ins I counted, but it does bump us up to 3.5/6

#

I understand that they can’t easily introduce a python API without trading off speed

#

But that misses how crucial plug-ins are to making flake8 a good tool

#

I’d argue it wouldn’t have gained as much popularity had it not allowed people to introduce rules that fit their own codebases

royal prawn
#

originally posted this to #community-meta, but i figure it fits more here instead:

#

working on fork of Lancebot to do reactions for more than just October. Some keywords have strong enough emoji competitors that I'm considering a split-the-baby approach of ask random to choose:

  • r"\bsnowman\" as one of {⛄, ☃️}
  • r"\bearth|planet\b" as one of {🌍, 🌎, 🌏}
  • r"\beaster|bunny|rabbit\b" as one of {🐰, 🐇}, (but I'm leaning towards just 🐇)
    Any opinions on the choices?
worldly gate
#

has anyone use codespace for contribution in bot or sir lancebot or other repo?

candid pine
restive jay
static canyon
#

Tl;Dr; Discord made a breaking change to their API, seemingly without any notice, causing all bots that send custom emojis to break

restive jay
#

I think it breaks commands with a reaction menu

#

Like !help

static canyon
#

It's anything with custom emojis

restive jay
#

Well the error seems to say it expects a snowflake and not a string I think

static canyon
#

The issue is Discord made a breaking change without telling people Shrug

#

It'll be fixed soon™️ once people update their code for API interaction

restive jay
#

Is rolling back to the previous API version endpoints a solution

static canyon
#

The solution is in the issue I linked above

#

Ig we just have to wait for the PR to be merged, a new dpy version to be released, & for us to update to it

restive jay
#

It seems people solved this by removing the first colon

clever wraith
#

Hi! Is it possible to contribute to @dusky shore , if so, does anyone kow how to? thumb_yes

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
vale ibex
#

This tries to explain most of the useful stuff

#

if you get stuck feel free to message here

clever wraith
#

Alright, thanks!

clever wraith
#

I tried Gitpod, but it doesn't automaticly install the packages, and when I type poetry install it says: The currently activated Python version 3.8.13 is not supported by the project (3.10.*). Trying to find and use a compatible version. Using python3 (3.10.7) Installing dependencies from lock file After that it doesn't say anything else, I suppose that it might take some time to install everything since the poetry file is 2000 lines, but I don't know. Anyone know how to make it automaticlly install everything? Also I'm trying to set up a fork of @dusky shore so that I can contribute.

vale ibex
#

it usually takes a minute or two if they aren't present in poetry's cache

#

I don't have any experience running gitpod though, so not sure if there are more things you need for it to work in there

clever wraith
vale ibex
#

I'm not aware of what the best tools to develop in browser are right now, no

outer oasis
#

CodeSpaces!!

thorny obsidian
#

🥺 Can I get a staff/contributor review on sir-robin#71

dusky shoreBOT
thorny obsidian
#

(If you need help getting Sir Robin set-up, especially the env vars then lmk!)

wild prism
#

can we add a dummy . command to lance to get him to shut up about leading ellipses

outer oasis
#

.....maybe

sharp crag
#

people were really pissed about it lol

#

i think it would be a pretty simple change

@bot.event
async def on_message(m: discord.Message) -> None:
  if len(message.content) >= 2 and message.content[0] == "." and message.content[1] != "."

or something like that

wild prism
#

i was thinking of literally just making a command called . with pass # shut up, Lance

timid sentinel
#

I think it would make most sense to fix it where the issue is, just add in a check wherever the logic for that message is

stable mountainBOT
#

bot/exts/core/error_handler.py lines 68 to 70

if isinstance(error, commands.CommandNotFound):
    await self.send_command_suggestion(ctx, ctx.invoked_with)
    return```
wild prism
#

yeah, or even positively check that the first character is alpha

sharp crag
karmic torrent
#

(╯°□°)╯︵ ┻━┻

royal prawn
#

Which privileged gateway intents do unverified versions of the pybots require? Is it just Message Content?

thorny obsidian
#

Depends on what the bot does. At minimum message content. I don't think we have presence on any of them, but Python does require server members intent iirc

royal prawn
#

a little teaser of the Christmas section of the fork I'm developing. It moves SpookyReact to a unified HolidayReact class currently supporting Valentine's, Easter, Earth day, Pride, Halloween, Hanukkah, and Christmas (though only Easter, Halloween, and Christmas have more than one trigger/reaction, and Easter has only 2).

#

(i gave @dusky shore 's fork a different name here)

bleak temple
#

Did 3.10 execution lose all its modules eYeS

Your 3.10 eval job has completed with return code 1.

001 | Traceback (most recent call last):
002 |   File "<string>", line 1, in <module>
003 | ModuleNotFoundError: No module named 'numpy'
gritty wind
#

Yes that is the case

#

3.10 offers functionally no difference from 3.11 and will probably be removed eventually

clever wraith
#

I've copied @dusky shore , but when I run it I get a total of 26 problems, is it anything that I should care about?

gritty wind
#

Are those IDE warnings or actual errors

clever wraith
#

Solved it, thanks.

#

Would I be able to, for example, create a weather command to @dusky shore ? If I used an API from like rapidapi.com? If I would be allowed, where should I put the credentials? In the .env?

gritty wind
#

The .env file is local to you and not checked into the git repo. When we merge your PR, we’ll document the new environment variable on the website, and we’ll generate and set a token for @dusky shore

clever wraith
#

Alright.

#

Thanks!

bleak temple
tough tide
#

guys when are we getting /commands for this bot to lookup certain docs and other stuff?

vocal wolf
#

Uhhhh review site#709 thanks

sharp crag
vocal wolf
#

thanks

hoary haven
#

if there's a library you think we should have available but don't, let us know and we can see about adding it

#

!docs

#

oh slash commands you're asking about

#

sorry, i'm not sure. i think we'll probably be adding some hybrid commands and fully slash commands in time, as the need arises

vocal wolf
#

@rapid swallow thanks

tough tide
vocal wolf
#

site#709 needs one more approval

#

thanks

vocal wolf
#

@sharp crag thing site#733

dusky shoreBOT
clever wraith
#

Helleew,

bot#2319 and site#792 are getting a bit rusty and need some love

leaden scarab
#

How to take vertical array as input??

clever wraith
worldly gate
#

@vocal wolf suggested some changes in the pull request bot#2354.Is there any way to commit all suggestions at once?

dusky shoreBOT
vocal wolf
#

yeah in the review tab you can batch commit

#

which is just shoving multiple commits together

#

"add suggestion to batch" on any review in the Files changed tab is the correct place, mb

worldly gate
#

and what is difference between resolve conversation and commit suggestion?

vocal wolf
#

Resolve conversation dismisses whatever the suggestion was, collapsing into a "resolved conversation" block.

Commit suggestion takes the diff (suggestion) and applies it to the code.

worldly gate
#

failing lint tests

vale ibex
vale ibex
worldly gate
vale ibex
#

if you run poetry run task lint locally it will tell you, and auto-fix in some circumstances.

worldly gate
#

yes I will do that

worldly gate
#

I think this is the problem

vale ibex
#

Yea, you've got a trailing white space there

clever wraith
#

It's a shame that Discord doesn't allow one to retrieve their posts easily

#

That's because if people don't allow people to DM them, they won't get a reference of their help post from @stable mountain

#

Which makes retrieving these posts harder than they should

austere hornet
clever wraith
#

That still isn't quite satisfactory IMO.
Because it'll include ones that I participated in, but what I'm talking about is just listing all the posts that I have created

austere hornet
#

Doesn't the search feature do just that? Or am I still misunderstanding your question?

vale ibex
#

Discord search shows all messages

#

however, shtlrs just wants a list of posts that a person has opened

clever wraith
#

Exactly

austere hornet
#

Actually, it looks like there is a search feature inside the forum but it only works for looking up the title and/or content of the post and not posts specifically created by a user

clever wraith
#

Yep, that's why I said it's a shame

#

I feel it's only natural for one to filter out their own posts

#

But hey, classic discord move i guess ahahhaah ¯_(ツ)_/¯

austere hornet
#

Yeah

clever wraith
#

Does anyone know why is the first image the only one who has started a formatting rebellion in the preview ?

It seems it's related to resolution but I don't quite understand.

If you look at the markdown file, they're all the same

exotic ember
clever wraith
#

I think I get it, let me try something out

#

I tried that, and it works.
It's just that I'm unhappy with the indentation level

exotic ember
#

ah, is the first image flushed to the left now?

clever wraith
#

All of them are

exotic ember
#

do you have a branch I can play around with?

clever wraith
#

should be site#814

dusky shoreBOT
exotic ember
#

!remind 4d try to get site docker working with podman

stable mountainBOT
#
Affirmative!

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

exotic ember
# clever wraith All of them are
1. Navigate to the **Python Help System** category.<br>
![Python help system category](/static/images/content/help_channels/help-system-category.png)
#

same for other items

clever wraith
#

That does it indeed

#

Thanks !

#

But I'm wondering why was it breaking earlier ?

#

And only for the first image

exotic ember
#

yep, I'll add to the page contribution guide

exotic ember
clever wraith
clever wraith
exotic ember
#

if you haven't seen that page yet, there's some neat stuff

clever wraith
#

Oh no I haven't, I'll check it out rn!
That did it perfectly, pushed 😄
Thanks again !

exotic ember
#

good job me not doing something I said I would do in april

sharp crag
vocal wolf
#

thank

white light
#

Is the bot able to change thread titles that contain `? I was trying to add a @ into a title (#1051586993928278088), but it stopped working.

#

Or was it just throttled?

thorny obsidian
#

Like : isn't allowed

white light
#

Though the bot doesn't work at all now.

#

The title just updated...

rapid swallow
#

ratelimits?

white light
rapid swallow
#

there's a 10 minute gap between the name changes

vale ibex
#

yea it's 2/3 channel edits per 10 minutes

rapid swallow
#

2

vale ibex
#

probably worth mentioning that in the command output

rapid swallow
sharp crag
clever wraith
#

@vale ibex do we still want to make bot-core#30 happen ?
I'd be VERY interested in working on this

dusky shoreBOT
vale ibex
#

feel free to self-assign

clever wraith
#

Alright, I'll have a go at this !

#

Thanks 😄

cold island
#

Hmm

#

Why do we want it on snekbox? Maybe I'm misunderstanding what this does

vale ibex
#

We want a base class that can be used by int-e, snekbox and latex

#

since they all do similar

cold island
#

I see

#

What is the similarly?

#

I'm asking because ionite's work changes how the snekbox output is parsed

vale ibex
#

I can't remember the original discussion, but I think it was the whole get input, parse input, post job somewhere, wait_for edits to post an updated job

cold island
#

Wasn't tizzy working on something like that?

vale ibex
#

not sure, if they were it's not mentioned on the issue

vocal wolf
clever wraith
#

Maybe @static canyon can tell us ? (Sorry for the ping)

static canyon
#

Errr

static canyon
dusky shoreBOT
static canyon
#

It's just slightly changing the rerun logic of it

#

Doesn't change internals of snekbox

vocal wolf
#

need core dev approval

vocal wolf
#

nevermind, I forgor to update branch

#

is merged

clever wraith
#

Beautiful !

vale ibex
vocal wolf
#

thanks

clever wraith
#

Does it matter if we include screenshots of a concrete user in our guides on site ?

#

The user = me

exotic ember
#

not really

clever wraith
#

Oki, I'll include it then

clever wraith
#

Our new help forum channel guide is ready to be reviewed in site#814

dusky shoreBOT
clever wraith
#

@vale ibex should we go with :feature: or :bug ? I'm thinking feature

vale ibex
#

if it's a feature, then you'd need to do 9.3.0

#

I don't mind either way

clever wraith
#

True, since it's a patch 🤦‍♂️

#

I'll go with feature

#

Thanks !

#

And we usually just put the issue or the PR's name ? Or can I describe it differently ?

vale ibex
#

You can describe it however you want, the number in the line is for the PR number so we can find that later

#

So just have the changelog describe the change the best way you can think of

clever wraith
#

Alright, thank you !

vale ibex
#

The number linking to the PR nicely

#

you can run poetry run task docs to generate these docs locally

worldly gate
clever wraith
#

I was asking mostly for name mangling

#

Because it doesn't explain it, and people could make use of examples, or at least good references to what it really means/does

worldly gate
#

ok

vale ibex
#

Thanks @clever wraith! Pushed the update to pypi :)

clever wraith
#

Sure thing! 😄

worldly gate
#

@clever wraith

clever wraith
#

For both actually, what I meant to say is:

  1. Underscore can store values indeed, but it's not common to use it like that, it's only common to store values we want to ignore, e.g not needed inside that scope
  2. In the python REPL, it stores the value of the last evaluated expression/latest output from a function, as long as it initially didn't have a value, otherwise wouldn't work anymore
worldly gate
#

please check this

clever wraith
#

@vale ibex I was wondering, wouldn't it be helpful to have real E2E tests for Snekbox ? Or are the mocked ones in bot enough ?

vale ibex
#

They likely would be good yea

#

I have no experience with snekbox, outside of adding extra packages to our production version, though

clever wraith
#

Me neither, but I could inspire myself a bit for the tests we have in bot

#

But I'm wondering where would they belong, because I thought we had a preview of the deployed snekbox instance but we don't

#

The point of the entire thing was brought by the new API wrapper I'm working on, and I thought it would be beneficial to test it

#

But it would only work in a real E2E test, otherwise we'd need a mock of the client as well

fossil berry
#

!e print("yo")

dim pelican
#

The .challenge command seems to be borked...

vale ibex
#

.challenge

dusky shoreBOT
#
In the future, don't do that.

Your input was invalid: No katas could be found with the filters provided.

Usage:```
.challenge [language=python] [query=None]

vale ibex
#

.src challenge

dusky shoreBOT
#
Command: challenge

The challenge command pulls a random kata (challenge) from codewars.com.

Source Code
vale ibex
stable mountainBOT
#

bot/exts/utilities/challenges.py line 123

if not first_kata_div:```
vale ibex
#

my guess is the format of the website changed, since we don't use an API, and now it can't extract them

dim pelican
#

I might have time tonight to open an issue, and if it is productive a possible PR

dim pelican
#

sir-lancebot#1169

dusky shoreBOT
stable mountainBOT
trim cradle
#

Can we modify the snekbox cog so that if a program raises a name error because np or pd are missing, it prepends the code with those import statements and tries again before erroring on the user side?

timid sentinel
#

Would be quite hacky, although doable, but some issues are it

  • Makes it so code blocks are no longer "fully contained" so they run as-is locally (and may be confusing for those reading that don't know what pd or np are)
  • Could mess up things like line numbers for errors
  • Is not great if people rely on it as there has to be a failed request every time it's used
  • Would be confusing to only do for specific modules, and difficult to do for all
#

I don't think it's that hard to write the import yourself, what's the use case?

trim cradle
#

but I understand the issues you've raised

tawdry vapor
#

We could even make that the default eval command in the data science channel. That could be seen as unintuitive though

trim cradle
tawdry vapor
#

Well I mean that it might be confusing that in one channel it auto imports and in another it doesn't

#

People might get used to that and then get surprised when the imports are missing elsewhere

gritty wind
#

I do like the separate command idea, but yeah I’d keep them separate to keep behavior consistent

cold island
#

Even with a separate command there would be line numbering issues...

gritty wind
#

We can inject it all on the first line

#

import a; import b; user_code
user_code2

outer oasis
#

Just import it all in sitecustomize.py or however that works

#

Set the PYTHONSTARTUP environment variable

gritty wind
#

I’m not sure if you can import things into the running script in sitecustomize, but it wouldn’t help anyway since snekbox does not import site for other reasons (and we can’t write to that directory in snekbox)

#

PYTHONSTARTUP makes more sense but it doesn’t apply to the -c option or running files

#

Which are what we have now and what we’ll have in the future respectively

cold island
terse tapir
#

hey has anyone worked with gdal , rasterio and geopandas?

austere hornet
fossil veldt
#

what is this discord file size formatting 🥴

bleak temple
#

beautiful

fossil veldt
#

are we not allowed to able to use any pytest features like pytest.mark.parametrize in our bot codebase?

#

seems a bit strange that we're using the unittest style while requiring and running pytest

fossil veldt
#

@tawdry vapor should we consider the length of unicode characters at all for truncation? This is the printout of 85 characters with max screen-width characters:

gritty wind
#

The pytest runner allowed us to make some things better, particularly adding test parallelization to make them not so slow

#

You can use subtests

tawdry vapor
fossil veldt
tawdry vapor
#

Yes.

fossil veldt
#

I don't think it did anything

tawdry vapor
#

I'm not sure if it covers that case but least it will prevent bad words in file names

fossil veldt
#

it should be applied right now anyways (since it is called after the failed files message is appended to msg)

tawdry vapor
#

Oh ok

#

I don't have any other good ideas

fossil veldt
tawdry vapor
#

Do those file names show up anywhere

fossil veldt
tawdry vapor
#

What does that name get normalised to

#

Could someone reasonably make a connection that it refers to the original name?

fossil veldt
#

any other character will be removed

#

if the resulting name is empty discord seems to provide a UUID file name

#

and some characters in the file names like forward slashes and new line characters will cause a 400 error, so I added local substitution for that

tawdry vapor
#

I don't think displaying normalised names for failed files is a good user experience. It sounds like the normalised names could be unrecognizable compared to the original. If that was the case we may as well not had shown any names at all and just shown a count.

I feel like we can leave this as is. I think chance and impact of abuse is minimal.

#

We can revisit it later if it becomes a problem

fossil veldt
#

yeah it seems fine

tawdry vapor
#

But this doesn't sound straight forward to solve

fossil veldt
#

even the longest utf-8 character at 85 chars isn't that bad

fossil veldt
tawdry vapor
#

Good find

fossil veldt
#

and they only reference it in something else

Images can also be referenced in embeds using the attachment://filename URL. The filename for these URLs must be ASCII alphanumeric with underscores, dashes, or dots. An example payload is provided below.

#

in practice:
\1 -> UUID file name
\n -> 400 error
a\nb -> replaced with underscore ("a_b")

#

behavior is literally so random no idea who came up with this

sharp crag
#

@outer oasis

#

Link to PR again?

outer oasis
#

Plz hold one moment plz

sharp crag
#

I was busy before didn't get a chance to look at it and it got lost lol

outer oasis
#

bot#2365

outer oasis
#

I know it's bad

sharp crag
clever wraith
#

I think that the get_channel call might not be needed

#

If you use the raw mention format along with channel id, it'd work, if i remember correctly

#

Shoot, let me have a look

outer oasis
#

I just don't know what the best way to do it would be
I kind of wanted f"[...] in <#{Channels.bot_commands}">, but I copied and pasted what I used from another cog for consistency

sharp crag
#

Get channel is constant time

#

Doesn't really matter

#

In terms of performance

outer oasis
clever wraith
sharp crag
outer oasis
#

ic

sharp crag
#

Internally there's a mapping of IDs to object

clever wraith
#

Never looked at the source code

#

When is this map populated ?

sharp crag
sharp crag
clever wraith
#

So it's guaranteed to hit ?

sharp crag
#

Not always there are a few reasons why it may not

#

If you don't have the proper intents for instance

#

The initial handshake payload is massive and some people will disable it

outer oasis
sharp crag
#

Yup

clever wraith
#

OUF.

outer oasis
#

Y?

sharp crag
#

Ask discord engineers

sharp crag
#

The goal is to not have big bots restart often

#

It's a one time heavy operation

#

From then on update the cache for instance when a new member joins the server

outer oasis
sharp crag
#

Sure

#

Keep in mind even individual shards can be massive

outer oasis
#

Can you run multiple instances on different servers?

sharp crag
#

They can service anywhere from 1500 to 2000 guilds

sharp crag
#

Horizontal scaling

outer oasis
#

oh

#

When I was playing with it I think I just made six shards on my one computer

sharp crag
#

fuck

clever wraith
#

I have never played with shards

#

It'd be interesting to do so

sharp crag
#

!d discord.ext.commands.AutoShardedBot

stable mountainBOT
#

class discord.ext.commands.AutoShardedBot(command_prefix, *, help_command=<default-help-command>, tree_cls=<class 'discord.app_commands.tree.CommandTree'>, description=None, intents, **options)```
This is similar to [`Bot`](https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Bot "discord.ext.commands.Bot") except that it is inherited from [`discord.AutoShardedClient`](https://discordpy.readthedocs.io/en/latest/api.html#discord.AutoShardedClient "discord.AutoShardedClient") instead.

async with x Asynchronously initialises the bot and automatically cleans.

New in version 2.0.
sharp crag
outer oasis
sharp crag
#

Given the nature of discord bots it takes a lot before you really need to start sharding

clever wraith
#

Ok then ignore my message

outer oasis
clever wraith
#

about the get_* call

#

IS ours sharded ?

outer oasis
#

No

#

(I think)

clever wraith
#

@sharp crag, is there a case where the get_* call would miss in our bot ? You got me curious

subtle kraken
#

I dont think we use any gets anymore

#

We have functions for getting or fetching to avoid cache misses

clever wraith
sharp crag
subtle kraken
#

That goes mainly for members though

sharp crag
clever wraith
#

That's my point, if we can avoid falling in that case at first, it's even better

subtle kraken
#

And member related stuff

#

We already do that.

clever wraith
sharp crag
# clever wraith Can you list them/tell me where to find them ?

The primary cases are user errors...:

  • Using a string instead of ints: bot.get_channel("635950537262759947") (most discord api wrapper libraries in other languages use strings, python is a bit special)
  • Incorrect ID
  • Bot is not in the server with channel ID
    Other than that, the most prevalent technical issue:
  • server member intents are off by default, without this enabled both in your code and in the developer portal, your bot won't see any members so even valid IDs will return None for .get_member()
#

If you're careful with how you approach .get_* methods you can almost guarantee yourself a 100% hit

clever wraith
#

Thanks a lot for explaining!

#

I have a followup question

sharp crag
#

Sure I'd love to answer

clever wraith
#

You said, python is a bit special, why is that ? Is it really python or just dpy ?
Why wouldn't python be able to use strings for ids as well ?

sharp crag
#

We actually had issues with this on #1020761012611325952 a while back because the python FastAPI was returning discord users as integers over JSON but our javascript frontend couldn't parse out the number because it was too big

#

if you're gonna send big numbers like IDs over json please please please for the love of god stringify it and don't be like our backend guys

outer oasis
sharp crag
#

no

#

im on the modsite project firHeck

subtle kraken
#

Didnt discord send them as ints for like 4 years?

#

Until javascript library broke

sharp crag
#

¯_(ツ)_/¯

#

not sure what language discord uses for their api backend

subtle kraken
#

They are crabs and alchemists

outer oasis
sharp crag
#

i bet rust's u64 does well with ints

outer oasis
sharp crag
subtle kraken
#

Elixir for most stuff and recently (2 years ago?) They rewrote hot paths in rust iirc

clever wraith
#

So by using a string in python for ids, dpy will doubly stringify it, resulting in an invalid one ?

subtle kraken
outer oasis
subtle kraken
clever wraith
#

Oki

#

Thanks 😄

sharp crag
stable mountainBOT
#

@sharp crag :white_check_mark: Your 3.11 eval job has completed with return code 0.

None
clever wraith
#

I was looking in another direction

sharp crag
#

Passing in string vs int to a fetch_* method shouldn't be an issue

clever wraith
#

I was thinking more at HTTP level, don't know why i went there

subtle kraken
clever wraith
#

But I understood once Senjan explained it, and confirmed it with your example

#

Thank you 🙇‍♂️

sharp crag
#

There's a distinction to be made:

  • fetch_* - always HTTP
  • get_* - Always cache
clever wraith
#

Understood !

outer oasis
rare tapir
#

Is anyone aware of some changes to HTTPSConnection in py312? While trying to test ansible with it I seen an unexpected exception HTTPSConnection.__init__() got an unexpected keyword argument 'cert_file'

static canyon
#

!positional-keyword

stable mountainBOT
#

Positional vs. Keyword arguments

Functions can take two different kinds of arguments. A positional argument is just the object itself. A keyword argument is a name assigned to an object.

Example

>>> print('Hello', 'world!', sep=', ')
Hello, world!

The first two strings 'Hello' and world!' are positional arguments.
The sep=', ' is a keyword argument.

Note
A keyword argument can be passed positionally in some cases.

def sum(a, b=1):
    return a + b

sum(1, b=5)
sum(1, 5) # same as above

Somtimes this is forced, in the case of the pow() function.

The reverse is also true:

>>> def foo(a, b):
...     print(a, b)
...
>>> foo(a=1, b=2)
1 2
>>> foo(b=1, a=2)
2 1

More info
Keyword only arguments
Positional only arguments
!tags param-arg (Parameters vs. Arguments)

static canyon
# stable mountain

Somtimes this is forced, in the case of the pow() function.
Ignoring the grammatical errors, I'm not sure what this is trying to say / what pow() has to do with this tag? There's no kwarg-only or positional-only parts to pow().

#

Based on the link it looks like it's referencing that pre 3.8 the the z param (renamed mod in 3.8) was positional-only, but I think it should be made clearer that this is an old thing that's no longer the case (or we change it to a new example where it is positional only)

hoary haven
#

hey what's that kind of command called where you right click a message and you can invoke a command thru the UI?

#

the lance .bookmark feature might work well for that

outer oasis
#

There's also an issue for !eval, so you can run it on other people's codeblocks

sharp crag
#

didn't I make a pr for this

#

I swear I remember writing code to make this

outer oasis
hoary haven
#

what's the name of that kind of command?

#

ok

sharp crag
#

No I swear

outer oasis
sharp crag
#

I literally made the code for this but I can't find it

outer oasis
#

It's stalled

sharp crag
#

Link pls

outer oasis
#

Blocked by... something

outer oasis
sharp crag
#

Thank

#

@hoary haven we can go ahead with it then?

#

Don't know if we had explicit permission last time

outer oasis
dusky shoreBOT
hoary haven
#

no lol i'm not approving anything

#

where's the bm issue? i'll comment

outer oasis
outer oasis
dusky shoreBOT
sharp crag
#

Oh ok

#

I was thinking of eval

#

Don't think it's really needed

#

Eval I mean

#

It's good as is

hoary haven
#

and does the context menu command have proper support on both android and iOS?

sharp crag
#

Ye

hoary haven
#

but yeah the bm issue is approved, so if you like feel free to assign yourself

sharp crag
#

@outer oasis

#

Yo

#

You wanna do this or do I do it

outer oasis
sharp crag
#

Oke

#

Should be pretty simple

#

Famous last words before disaster

outer oasis
#

I remember you talking about it
Isn't it like just a decorator or something?

sharp crag
#

You can't have context menus in cogs

#

But I figured it out when doing the eval

outer oasis
#

Why?

#

How?

sharp crag
#

Like using inspect to figure out types and crap

#

It breaks when inside a class with self as first parameter

outer oasis
#

of course it does

#

Could that not be fixed?

sharp crag
outer oasis
#

Seems like a simple PR

sharp crag
#

See this for more detail

outer oasis
#

if args[0] is ClassType

#

done

sharp crag
#

See Danny's description as to why

outer oasis
#

ic

#

I don't understand comepletly
But I see

sharp crag
#

Pretty simple workaround

outer oasis
clever wraith
#

I saw the discussion indeed, and it seemed like there was only one PR blocking it, but like you said it's all settled now.

@sharp crag I think it's ready to be tackled now, isn't it?

sharp crag
#

I'm OK with whichever (it's a really simple change to make it ephemeral vs not) but just proposing my 2c on it

fossil veldt
#

anyone know why we aren't using ansi formatting for eval?

#

I know it doesn't work on mobile but surely working on desktop is still better than plain text for either platform?

outer oasis
#

It would look exactly the same unless users spent the time to add ANSI control characters to what they print out, wouldn't it?

fossil veldt
# outer oasis What would the difference be?
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
File <ipython-input-6-200bde36fdd5>:2
      1 x = 5
----> 2 y = (x // 0).real

ZeroDivisionError: integer division or modulo by zero
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
File <ipython-input-6-200bde36fdd5>:2
      1 x = 5
----> 2 y = (x // 0).real

ZeroDivisionError: integer division or modulo by zero
outer oasis
fossil veldt
#

😔

fossil veldt
#

if we implement ipython eval it has colored tracebacks by default

outer oasis
#

Wait how

clever wraith
outer oasis
#

Nice, nice, nice

fossil veldt
#

otherwise you can do something like rich.tracebacks.install()

clever wraith
#

I suggest you open an issue for it, and we'll see what everyone has to say about it.
It's a pretty nice addition TBH, too bad it doesn't work on mobile. (Anyone care to explain why ?)

atomic ivy
#

because Discord

clever wraith
#

Ok, that's what I had a mind as well, but I thought I'd better doubt it

#

...

thorny obsidian
#

It looked like this, so we decided against using it

timid sentinel
#

If we were to do it I think it should be using something like pygments to format the output rather than modifying the actual traceback text. I'd rather we keep the traceback matching the one Python would give you.

fossil veldt
#

also it might be neat for people to print colored text via ansi and for it to be actually colored

timid sentinel
#

I guess it wouldn't hurt to add the formatting to the output

#

It wouldn't make any changes to anything other than ansi escape codes right?

#

I remember we used to add python formatting to eval output

fossil veldt
#

shouldn't... I think? pithink

#

!e print("\033[0;31m" + "hello")

stable mountainBOT
#

@fossil veldt :white_check_mark: Your 3.11 eval job has completed with return code 0.

hello
clever wraith
#

@sharp crag, sir-lancebot#1176 needs you

dusky shoreBOT
clever wraith
#

However, i've added a comment to the linked issue, and i think we should reflect upon it

#

The commits are also "atomic", so you can view them one by one

#

@outer oasis you as well, since you originally wanted to make this happen

outer oasis
#

(I do agree with the idea, but I just made the issue for Robin - FYI, I don't actually know anything about Discord bots so my review isn't worth much)

#

Also the tests failed

#

Oh no wait that's just a transient error

sharp crag
boreal arrow
hoary haven
#

(i closed it just about now after UC let us know)

sharp crag
hoary haven
#

i think we should fix it

sharp crag
#

@outer oasis @clever wraith I have come up with an idea in the original issue sir-lancebot#1089

dusky shoreBOT
sharp crag
#

Please leave your thoughts & ideas

#

Like you mentioned it would be a shame to lose that functionality

stable mountainBOT
timber pelican
#

this is annoying

#

can you disable it for some users?

vale ibex
#

We already do, it doesn't happen for helpers

timber pelican
#

can you also do it for other users?
for example, it user have sent >100 messages, or is on this server for >1 month, or something else

#

python files cannot be malicious if you are not running them

vale ibex
#

Posting a python file makes it trivial for a person to accidentally execute it. Also, we want to encourage people to send minimum viable examples of code they're having trouble with, not just dump their whole thing

timber pelican
#

how is it trivial???

  1. download
  2. open console
  3. run python filename.py
vale ibex
#

you can just double click it to run

timber pelican
#

very weird

vale ibex
#

ok

#

regardless, I'd suggest searching in #community-meta for the many times we have previously discussed this

#

if you still feel strongly after doing so, feel free to bringing it up in there again

sharp crag
#

@clever wraith regarding the latest developments in sir-lancebot#1089
I don't think GitHub is the right place but if you need help with the modal stuff please do let me know here, as I believe this could get a bit more complex :P

dusky shoreBOT
clever wraith
hoary haven
#

i think chris's idea feels a lot more natural, to me

sharp crag
#

fair enough

#

FWIW discord modals allow optional fields

#
class MyModal(discord.ui.Modal, title="Title"):
  title = discord.ui.TextInput(
    label="Title",
    required=False,
  )
thorny obsidian
cold island
#

if so then I think we should make it like once 30 minutes to an hour

thorny obsidian
#

It's going to fetch from the cache every 10 minutes, but that does mean there will be requests every 30 min to the leaderboard

cold island
#

ah ok

thorny obsidian
#

Happy to increase that to whatever time you think is appropriate. I'm happy up to 12 hours tbh

cold island
#

It's whatever then, but what the cache means is that the task will run two extra times for no reason, since it's not going to use any new data

thorny obsidian
#

I'll get it merged now and before the new year change it to a higher threshold and create a stop/start thing for it

cold island
#

sure

vale ibex
wind ruin
#

we'll be using guild commands, not global commands?

vale ibex
#

this PR would cover the case where we want to use either

wind ruin
#

oh

gritty wind
#

I don’t think it’s a good approach because it makes startups rather expensive

#

During dev we probably should not sync unless the developer requests it

vale ibex
#

So shouldn't delay anything

gritty wind
#

I’m talking expensive in terms of rate limits and whatnot

vale ibex
#

The rate limit is 200 commands per day per guild

#

And no limit to updates right now

gritty wind
#

Does d.py cache them to actually make that distinction?

vale ibex
#

Could easily add a kwarg to the list extensions function to allow disabling the app command load

vale ibex
gritty wind
#

I don’t understand

#

One uses a post, the other latch and delete

#

I implemented it by hand a while back, you’d still make a request on startup to get registered commands and check their args

#

So startup would cost that request + the cost of registering the commands + the cost of updating (which is free?)

#

Assuming d.py does do something like that instead of creating everything

vale ibex
#

Ahh right I think the sync func handles that

#

I looked into the impl a while ago and didn't get worried by rate limits at leaf

gritty wind
#

Alright

vale ibex
#

Don't remember the exact logic

vale ibex
#

We can choose per bot whether to sync based on dev flag

fossil veldt
#

btw if anyone would like to have a look over bot#2326

dusky shoreBOT
fossil veldt
fossil veldt
#

is google forms, look at embed lemon_smug

clever wraith
outer oasis
fossil veldt
#

maybe upstream issue

tawdry vapor
fossil veldt
#

we technically can merge the snekbox one before bot since it's compatible but it won't really do anything feature wise

#

the snekbox pr does need to be merged before the bot pr deploys though, since it assumes the new keys exist

vale ibex
#

what keys need adding?

#

I can add them now

#

or do you not mean keys in the sense of env vars?

fossil veldt
vale ibex
#

ah alright

fossil veldt
#

like files

vocal wolf
#

sir-lancebot#1178 thanks

dusky shoreBOT
clever wraith
dusky shoreBOT
clever wraith
#

The PR is sir-lancebot#1176

dusky shoreBOT
clever wraith
#

Also, I see that we still use botcore in Sir Lancebot, is there a reason we didn't bump it to the new version ?

vale ibex
#

What version is it on?

clever wraith
vale ibex
#

Ah bot core is on 9 now

clever wraith
#

Yep

vale ibex
#

Can't remember the breaking change

clever wraith
#

How would you usually test this ?
Because I've bumped the version locally, and the imports are all the same.
I guess I'd need to verify the signatures and see if there are any new changed params?

vale ibex
#

Looks like the breaking change was changing the module name

clever wraith
#

Yes, that I'm aware of

#

But I thought there might be something else

#

Well, nice

#

Shall we bump this then ?

vale ibex
#

Doesn't look like it

#

Yea, might as well, I'd suggest a different branch /pr though

clever wraith
#

Yes of course

#

A separate context is always preferred

vale ibex
#

Agreed

clever wraith
#

Alright, I'll bump it to the latest one and send it your way

vale ibex
#

Sounds good

#

I'm on the road today so won't get to it until tonight

clever wraith
#

There's no rush anyway

clever wraith
#

Here it is @vale ibex, have a look at it whenever you can
sir-lancebot#1180

dusky shoreBOT
clever wraith
#

So i thought that maybe we'd do that separately? Idk

vale ibex
#

Bot core supports 3.10 and 3.11

#

Dropping 3.10 would be a breaking change

#

What's the error you get installing 9.3.1?

clever wraith
#

Tbh, it just couldn't find the 9.3.1, so i directly assumed that it was related to the python version.
But maybe it isn't?

vale ibex
#

Oh, maybe I never pushed it

#

!pypi pydis-core

stable mountainBOT
#

PyDis core provides core functionality and utility to the bots of the Python Discord community.

vale ibex
#

Lol nope

clever wraith
#

Woops

vale ibex
#

Will do when I get home

clever wraith
#

Ahahahaha

candid pine
#

Bug with .quiz stop found here: #sir-lancebot-playground message

(It doesn't stop, and multiple iterations of quiz run concurrently, which isn't expected behavior.)

vale ibex
#

Ill just merge 9.4.0 when I get in and push both

clever wraith
#

Alright!

vale ibex
#

Did you want to look into the issue yourself, or were you just reporting it?

vale ibex
#

just noticed the 9.4.0 PR isn't approved yet, so we won't use that one just yet

clever wraith
clever wraith
cold island
#

bot#2341 needs one more staff/contributor review

clever wraith
#

Would you be interested in looking at bot#2319 @cold island?
It's about to die alone in there :p
It should be then Merged with site#792

candid pine
#

Super slammed lately 😅

vale ibex
#

No problem at all, just didn't want to let some else work on it if you wanted to yourself

candid pine
clever wraith
#

Any core devs around who want to get us rid of sir-lancebot#1180 ? 😄

dusky shoreBOT
vocal wolf
#

bruh we hit ratelimit on most recent commit to site rip

clever wraith
clever wraith
#

Tests are running, but the conflict was just due to the breaking change when it comes to renaming botcore to pydis_core

vocal wolf
clever wraith
#

Sure thing !

vocal wolf
#

morning sure arrives quickly

clever wraith
#

Ahahahhaha

#

I got home earlier than expected

vocal wolf
#

lol nice

clever wraith
#

Shall we remove the do not merge tag for site#792

dusky shoreBOT
vocal wolf
#

ya I was just about to discuss that

#

I think we should merge site first

clever wraith
#

and merge it along with bot#2319 ?

clever wraith
#

yep

vocal wolf
#

yep

#

alright

clever wraith
#

I'll leave that to you chief !

vocal wolf
#

site merged

#

I'm going to wait until it deploys then do bot

clever wraith
#

We wait for deployment before we deploy bot

#

yep

#

Such a relief to see the number of my pending PRs go down ahahahha

#

Let me know if you're up for another review :p

vocal wolf
#

:D

#

ya after this I'll take a look at PRs

#

this winter break has given me too much time lol

clever wraith
#

ahahahha

vocal wolf
#

I haven't written a PR to bot, site, or sir lance in a while

#

I should do one

#

it's just been all reviews

#

ok site is deployed

#

merging bot

#

alright

#

bot merged

clever wraith
#

Noyce !

#

Thank you 😄

vocal wolf
#

bot is getting closer to 1k stars :D

clever wraith
#

As it should !

vocal wolf
#

oh nevermind

#

it relies on another pr

clever wraith
#

Yep !

#

I doubted myself for a bit because I thought I mentioned that ahahahah

fossil veldt
#

any thoughts on bot#2368 bot#2369

dusky shoreBOT
fossil veldt
#

not super urgent since still waiting on file pr

#

2368 would be the simpler of the two, adding a way to send arbitrary arguments to snekbox, like

!e -m mypy

x = 5
reveal_type(x)

!e -m pytest

def test():
    assert True
clever wraith
#

@timid sentinel what you said is true, alot of the work went away 😒
That's strange, i only had one conflict related to the botcore import, so I never doubted such thing would happen.

What's best to do here?
Revert, or fix that in a new PR?

timid sentinel
clever wraith
#

Okay, I'll take care of that!

#

I still am confused to why this happened

timid sentinel
#

I'm not sure either. No worries anyway, it's easy to make mistakes with merges, and it's nothing that can't be fixed.

clever wraith
#

Sure, I just want to understand whether this is something I did, or that's just git.
Even though a merge is a merge, that's quite straightforward.

#

And usually git is smart enough to include the new changes, otherwise what's the use of it :p

cedar ether
fossil veldt
#

hey @sharp crag how are you doing with bot#2316

dusky shoreBOT
fossil veldt
#

I think it's fine other than the flake8 error about the unused import

rapid swallow
#

site#824
I cant see why the deploy preview workflow failed because the logs don't load for me

dusky shoreBOT
rapid swallow
#

re-running it might fix it

clever wraith
#

@timid sentinel @vocal wolf
The mistake that happened was because of something I did.
bot#2373 fixes that

clever wraith
#

I'm used to resolving conflicts with visual studio at work, and I never resolved ones using Pycharm.
So my expectations were wrong when it comes to how to use this feature in Pycharm, but lesson is learned now

#

Ok, this happened automatically, and I'm confused

#

I reopened the issue last night since the merge issue happened, but the old site PR somehow closed it again ??

clever wraith
#

Thanks !

#

However, I still don't get why the issue was automatically closed through site's PR

clever wraith
#

@vale ibex Hello good sir 🫡
We need your input in bot-core#30
And we also need your review in bot#2323

Thank you !

vale ibex
clever wraith
vale ibex
#

Did you submit the review?

#

I don't see any comments from you on my comments

clever wraith
#

I did now, sorry for that

vale ibex
#

Hah no worries, I'll take a look

clever wraith
#

i'm used to CTRL+ENTER in Azure DevOps

#

which obviously works differently here

vale ibex
#

you linked it in he PR review, but that commit isn't part of the PR

#

Ah, it must have been a merge commit or a rebase or something

#

the change is there, just under a different commit hash

clever wraith
#

Because I also can't find that exact commit

vale ibex
#

it doesn't matter, the change is there

#

I'll just review the diff fresh

clever wraith
#

That's the same hash, isn't it ?

#

It's available in the commit history

#

strange

dim pelican
#

Hello, don't post advertisements or offer paid work.

#

!rule 9 6

stable mountainBOT
#

6. Do not post unapproved advertising.

9. Do not offer or ask for paid work of any kind.

sharp crag
#

!remind 15h see what needs doing with 2316

stable mountainBOT
#
I got you.

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

stable mountainBOT
sharp crag
#

crazy

fossil veldt
#

!remind 132y discord snowflake overflows 42 bits

stable mountainBOT
#
You got it!

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

static canyon
#

I think bot#2124 can be closed now that we have the new system, right?

austere hornet
#

Just wondering -- why was #763406158522220544 unlocked? Guessing there was a meeting last night or something?

#

It shows the unlocked symbol but when I click it it doesn't join? pithink

austere hornet
vale ibex
#

that's the lock symbol, which indicates a non-public channel

austere hornet
#

I'm confused. If it's non-public, why am I seeing it? I remember it used to be locked so only contributors/coredevs could join but the general public could see the people in the channel

#

Or maybe Discord changed the symbol?

austere hornet
vale ibex
#

Even if you have access to the channel, it shows the locked symbol

#

It's just to indicate that the everyone role doesn't have access to it

austere hornet
#

Ohhh ok that makes more sense. Thanks!

clever wraith
#

Hey @vale ibex
Your comments in bot#2323 have been addressed, please have a look when you get the chance.

Also, I was trying to test bot-core#171, but when I change the core version in sir-lancebot to the beta release, and step into the code that loads the extensions, I don't see the same code that I see in your PR, which is quite strange.

clever wraith
#

I'll try to have another go at it

clever wraith
#

I really don't understand what I'm missing here
Here's the diff from Chris' PR (1st image)

When I run poetry show, I get this (2nd image)

And when I look at the installed package, I only see part of it (3rd image)

Does anyone have an idea on what this might be happening ? I can only come up with theories, but I also want to understand

vale ibex
#

could you try poetry install --sync --no-cache

#

I think I pushed the most recent changes with the same version number to pypi, so the old version might be cached

clever wraith
#

One of the doubts was the cache, but then, you see that there's only a part of it that's missing

#

Which made me wonder why it'd done it like that

outer oasis
clever wraith
#

That didn't do it

vale ibex
#

that'll probably be it then

#

try with beta2 now

clever wraith
#

Did you push it to pypi ?

vale ibex
#

yea

clever wraith
#

Let me try something else

outer oasis
#

That happens to me for the first few minutes after I release my packages

#

You might try clearing Poetry's cache

clever wraith
#

Thanks folks

timid sentinel
clever wraith
#

Done!

#

The branch needs updating though

timid sentinel
#

Thanks!

clever wraith
#

Since we're doing reviews
@sharp crag sir-lacebot#1176 is now ready since Chris' PR that syncs commands has been merged.
and bot#2341 has been sitting alone for a while, it needs one more review !

clever wraith
#

sir-lancebot#1176 *

dusky shoreBOT
stable mountainBOT
#
Yep.

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

sharp crag
#

I appreciate you 🙂

clever wraith
#

😊

stable mountainBOT
midnight jasper
#

How can I contribute to python bot?

static canyon
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
static canyon
midnight jasper
#

@static canyon doesnt look like there are any issues

#

it says 9 are open and 9 are closed

static canyon
midnight jasper
#

then what did it mean by 9 are closed

static canyon
#

Closed meaning it's already been implemented (or was rejected)

midnight jasper
#

hm i see

#

ill work on adding the button confirmation!

static canyon
#

So you can choose one of the open ones

midnight jasper
#

i just implemented that into my bot

static canyon
#

But make sure to get assigned etc. before actually working on it -- otherwise you might end up working on stuff for nothing

midnight jasper
#

wait how do u get assigned

static canyon
#

Just send a message on the issue saying you'd like to implement it & wait for a response (may take a few days, depending on how busy core devs are)

midnight jasper
#

alright i sent this
Can I implement this feature?

#

ty for ya help

static canyon
#

In the mean time you can download the project etc.

#

You should also install pre-commit hooks (poetry install pre-commit)

static canyon
#

Runs the changes against some linting stuff so you don't commit stuff that will fail the build pipeline

#

E.g. unused variables etc. will be flagged

#

@midnight jasper ^

midnight jasper