Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compatibility Issue: Limitation on python-dotenv versions below 1.0.1 #52

Closed
marcortola opened this issue Dec 31, 2024 · 4 comments · Fixed by #55
Closed

Compatibility Issue: Limitation on python-dotenv versions below 1.0.1 #52

marcortola opened this issue Dec 31, 2024 · 4 comments · Fixed by #55

Comments

@marcortola
Copy link
Contributor

Hi there,

First and foremost, congratulations on the great work with atomic-agents! It's exciting to see how the project is evolving.

I'm reaching out to inquire about the decision to limit support to versions of python-dotenv higher than 1.0.1. I'm currently facing challenges in integrating atomic-agents with some of my existing projects and libraries, particularly with the dotenv-vault library.

This version restriction creates some roadblocks in maintaining compatibility across projects, but understanding the reasons behind this decision could help us look for alternative solutions or workarounds.

Best,
Marc.

@KennyVaneetvelde
Copy link
Member

@marcortola Heya, sorry for the late reply

This limitation is mostly just because I have not tested it with any lower versions

I can look into if it works without issues with a lower version, or if you have gone ahead and done that already you are welcome to open a PR! 😁

@marcortola
Copy link
Contributor Author

Hey @KennyVaneetvelde!

I've been looking into this a bit more, and I noticed something interesting - we're only really using python-dotenv in the examples and some tools. This got me thinking... what if we removed it completely?

Here's my thinking: these days, environment variables come from all over the place - .env files are just one way to do it. Teams might be using Docker env variables, system variables, cloud secrets, vault services, or any number of other approaches.

If we remove the python-dotenv dependency, Atomic Agents could become more flexible and easier to integrate with different setups. No more version compatibility headaches, and users could handle their environment variables however makes sense for their specific setup.

We could:

  • Take out the dependency completely
  • Update the examples to show a few different ways to handle env vars
  • Maybe keep the .env examples in a separate folder for reference

What do you think about this approach? Would love to hear your thoughts before moving forward with anything. If you think this makes sense, I'd be happy to put together a PR!

In the meantime, I'll submit a PR to make it compatible with lower versions of python-dotenv to address the immediate compatibility issues.

@KennyVaneetvelde
Copy link
Member

@marcortola You raise an interesting point and laid bare a bit of an oopsie on my part.

I think we can do this in an even easier way

  • Remove python-dotenv from the ROOT, since it is unused, no replacement needed
  • Leave it be in the examples

Reason being: only the core library is deployed to PyPi anyways, alongside the CLI, but the examples are not, so that should solve any installation issues as it would not make python-dotenv a requirement of the installed package anymore (I think this even goes for installing from GitHub but correct me if I am wrong)

Of course, if you still feel inclined to update the examples to a more modern approach without dotenv, I wouldn't stop you 😁, however I just figured it would be more didactic to make each example as self-contained as possible (hence why each example is a project of its own)

Thoughts?

@marcortola
Copy link
Contributor Author

Ah, that makes perfect sense @KennyVaneetvelde! I completely agree with your approach.

You're right - keeping the examples self-contained and focused on demonstrating Atomic Agents usage is more valuable than introducing different env variable handling methods. It would just add complexity where it's not needed. Plus, having python-dotenv in the examples makes them easier to get up and running quickly, which is exactly what examples should be.

I'll put together a PR and we can take it from there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants