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

ARE YOU USING DYNACONF? #155

Closed
rochacbruno opened this issue Apr 9, 2019 · 15 comments
Closed

ARE YOU USING DYNACONF? #155

rochacbruno opened this issue Apr 9, 2019 · 15 comments
Labels

Comments

@rochacbruno
Copy link
Owner

@rochacbruno rochacbruno commented Apr 9, 2019

Hi,

As you are on Dynaconf Issues page I assume you are using Dynaconf, or are interested in using it?

This issue is a placeholder to get feedback from users, can you share your experience?

Or if you are not a user, can you share what are you looking for in a config management library?

Questions

For those using Dynaconf

  • Are you using Dynaconf (yes/no)
  • Can you share some details? (company, project, stack)
  • When did you start using Dynaconf?
  • What features you use?
  • What features you miss?

For those not using

  • If you have tried Dynaconf but decided not to use, can you share why?
  • If you are still reading and have not tried yet can you share what you are looking for?

Feel free to share any comment, suggestion you have

Thanks

@rochacbruno rochacbruno pinned this issue Apr 9, 2019
@janw
Copy link
Contributor

@janw janw commented Apr 17, 2019

Hey. New dynaconf user here! Thanks for the great library, here are some answers to your "market research request" 🙃

Can you share some details? (company, project, stack)

We just started using Dynaconf at @innovocloud for one internal project, possibly more in the future. The app is a custom-built, containerized, and runs in Kubernetes. The latter greatly benefits from configurability via environment variables.

When did you start using Dynaconf?

Two days ago 🤓

What features you use?

Env vars, .env files, settings.toml file, and an extensive validation logic. Possibly vault support in the future.

What features you miss?

Disabling Env var prefixes altogether. Within a controlled environment like Docker containers there's no real need for prefixing all settings, and setting GLOBAL_ENV_FOR_DYNACONF="" leaves a preceding underscore. If you're interested and that's a feature that you would like in Dynaconf, I will provide a PR allowing to disable the global env.

@rochacbruno
Copy link
Owner Author

@rochacbruno rochacbruno commented Apr 17, 2019

@janw thanks for answering!

I like the idea of disabling the prefix.

@chobeat
Copy link
Contributor

@chobeat chobeat commented Apr 21, 2019

Are you using Dynaconf (yes/no):

yup, at work in most of our python codebase

Can you share some details? (company, project, stack)

Company:Teraki,
Project: we do data-compression using machine learning. Dynaconf is used in many services for the training part.
Stack: Faust and Kafka, basically.

When did you start using Dynaconf?

Around 1 year ago

What features you use?

Before I was using it pretty basically, loading a toml and some environment variables, using a series of "spec" classes that validated the presence of some keys at startup. Recently I've added a live reload of the logging levels when running in debug mode so that I can change the levels in a toml file and control the logging. Clearly this is done through dynaconf.

What features you miss?

My usage right now is quite basic so I don't feel like I'm missing any feature.

@PyUser5
Copy link

@PyUser5 PyUser5 commented May 15, 2019

Hi!
Thank you for your great work. We are realy enjoying this package.

- Are you using Dynaconf: yes
- Can you share some details? Using it on multiple projects, data analysis, flask, etc. for configuration management and deployment management.
- When did you start using Dynaconf? 5 months
- What features you use? settings files from different directories loading different configs depending on how/from where they are called. Secrets Management.
- What features you miss? None so far. Only got some problems with >2.0 which were fixed in no time. Thanks for that!
@malarinv
Copy link

@malarinv malarinv commented Aug 9, 2019

If you have tried Dynaconf but decided not to use, can you share why?

I'm looking for a configuration system that provides decorators(taking config section header as param) for classes that initializes the object with params specified in a section in the config file.

If you are still reading and have not tried yet can you share what you are looking for?

I'm looking to merge my application arguments and configuration options in the spirit of
https://github.com/bw2/ConfigArgParse . There is Dynaconf CLI, but it doesn't fulfill this requirement.

@rochacbruno
Copy link
Owner Author

@rochacbruno rochacbruno commented Aug 9, 2019

@malarinv

I'm looking for a configuration system that provides decorators(taking config section header as param) for classes that initializes the object with params specified in a section in the config file.

Interesting use case, would be something like:

default:
  server_data:
    name: foo
    password: bar
from dynaconf import settings

@settings.provide_defaults("server_data")
class Server:
    ...

then

server = Server(name="other")  # password not passed
server.name == "other"
server.password == "bar"

Well, that is not the goal of dynaconf, but can definitelly be a case for a plugin once #146 is resolved.

I'm looking to merge my application arguments and configuration options in the spirit of
https://github.com/bw2/ConfigArgParse . There is Dynaconf CLI, but it doesn't fulfill this requirement.

It can be done right now, mising dynaconf with some cli app like click, but that is also not on the goals for this project, I think you need something like https://github.com/rochacbruno-archive/manage (which is a project that I abandoned)

Anyway thanks for feedback.

@malarinv
Copy link

@malarinv malarinv commented Aug 11, 2019

@malarinv

I'm looking for a configuration system that provides decorators(taking config section header as param) for classes that initializes the object with params specified in a section in the config file.

Interesting use case, would be something like:

default:
  server_data:
    name: foo
    password: bar
from dynaconf import settings

@settings.provide_defaults("server_data")
class Server:
    ...

then

server = Server(name="other")  # password not passed
server.name == "other"
server.password == "bar"

Well, that is not the goal of dynaconf, but can definitelly be a case for a plugin once #146 is resolved.

Well, that is exactly what I was looking for, good to know it would become possible with the plugin system in place

I'm looking to merge my application arguments and configuration options in the spirit of
https://github.com/bw2/ConfigArgParse . There is Dynaconf CLI, but it doesn't fulfill this requirement.

It can be done right now, mising dynaconf with some cli app like click, but that is also not on the goals for this project, I think you need something like https://github.com/rochacbruno-archive/manage (which is a project that I abandoned)

Anyway thanks for feedback.

Not exactly an additional executable named manage but a drop-in replacement for argparse/click in a user defined cli application, with the ability to pass cli params that just override (or not) config values loaded from a config file. the config file could possibly be specified in the cli argument as well.
Thanks for the pointers though. I don't expect it to be within the scope of dynaconf though 😉

@rochacbruno rochacbruno unpinned this issue Dec 5, 2019
@anentropic
Copy link

@anentropic anentropic commented Feb 20, 2020

I'm trying to right now but struggling to understand how to configure it

The list of options here is quite confusing (as well as: the table extends off the rhs of the page but Chrome does not show a horizontal scrollbar).

in clitool/conf/__init__.py I have instantiated:

settings = LazySettings(
    ENVVAR_PREFIX_FOR_DYNACONF='CLITOOL',
    SETTINGS_FILE_FOR_DYNACONF="clitool.ini",
)
settings.update({
    "MAX_LEVEL": 10,
    "ALLOW_THINGS": False,
})

I can now:

from clitool.conf import settings
settings.MAX_LEVEL
>>> 10

I would then like users of clitool to be able to create a clitool.ini in the root of their own project and have values loaded from there override the defaults I set directly in clitool.conf.settings when they run clitool.

I tried creating such a file but it does not seem to be loaded.

I'm sure this must be possible with dynaconf but it's not clear how from the docs.

One problem I have is to know what the file paths for SETTINGS_FILE_FOR_DYNACONF are relative to. Are these files in my project (which users will install from pypi)? Or relative to the CWD when the code is run?

How to specify the format of the file? By file extension only? Or can I have a .clitool file in TOML format for example?

@zhuoqiang
Copy link

@zhuoqiang zhuoqiang commented May 19, 2020

It would be great to have some predefined placeholders. for example, the configuration file directory path is quite useful

use case:

[development]
DB_PATH = "@format {predefined.this_dir}/some-file-just-side-by-side-with-settings.db"
@rochacbruno
Copy link
Owner Author

@rochacbruno rochacbruno commented Jun 8, 2020

I will do a "Dynaconf Community Meeting" audio/video call to talk about some decisions for #python #Dynaconf 3.0.0 which will be released soon.

This version is going to break some default functionalities in favor of better design.

Wanna join? please reply

@VaultVulp
Copy link
Collaborator

@VaultVulp VaultVulp commented Jun 8, 2020

That's a great idea, @rochacbruno! I would like to join in. But, please bear in mind, that English isn't my native language, so I might not be that useful.

@rochacbruno
Copy link
Owner Author

@rochacbruno rochacbruno commented Jun 9, 2020

don't worry @VaultVulp English is also not my native language :)

@slobinger
Copy link

@slobinger slobinger commented Jun 11, 2020

Are you using Dynaconf: yes
Can you share some details?:
I use it in all projects where possible,for different customers.
Mostly the projects are based on flask. As a project for my own leaning I try to figure out how to make pyramid work with dynaconf, because the config style of pyramid is the only thing I don not like about it (pyramid). Stack: one project is already on docker and an orchestration plattform, but an other for example is far away from this. But the second one anyway realy profits from dynaconf compared to the way the program was configured before I introduced Dynaconf to it.
When did you start using Dynaconf?
July 2019, when I looked around for a 12-factor config lib.
What features you use?
Mainly the flask extension, but as I said I experiment with the standalone variant too.
What features you miss?
I would answer this with a counter question: Is it possible to have two independent dynaconf instances in the same application? This would be really cool for testing purposes. I do not need the compleet flask app config for all the tests, so it is nice to seperate testing config and flask config. But I know that I need both configs in some flask app tests in the future.

I am also realy interested in a comunity meeting.

@rochacbruno
Copy link
Owner Author

@rochacbruno rochacbruno commented Jun 11, 2020

REMINDER: Today we are having #python #Dynaconf "Community Meeting" to discuss breaking changes that are coming to v3 - If you are a user of the lib you can join the meeting on #354
if you are just curious you can watch it on https://twitch.tv/codeshow

@slobinger @VaultVulp

@rochacbruno
Copy link
Owner Author

@rochacbruno rochacbruno commented Sep 12, 2020

Thanks everyone for the feedback here, very valuable ideas!

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

Successfully merging a pull request may close this issue.

None yet
9 participants