A documentação dos valores padrão em muitas classes não está incluída, é inconsistente na forma como está escrita ou está desatualizada. Eu gostaria de reunir algumas pessoas para trabalhar na documentação dos valores padrão para cada classe, pois há uma tonelada de classes onde esses problemas existem. Disseram-me que os valores padrão devem ser documentados como "default = <'value'>" e, portanto, estou criando este problema com base nessa suposição.
Aqui estão algumas coisas que eu vi para os parâmetros que devem ser alterados:
Se algumas pessoas trabalharem em algumas aulas cada, isso deverá ser feito em um piscar de olhos! Todas essas soluções devem ser bem simples.
#### Exemplos
https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html
O link acima é um exemplo onde os valores padrão não são indicados, mas os parâmetros dizem "opcional", e aqueles com valores padrão indicados são todos documentados de forma inconsistente.
Olá @cgsavard , gostaria de trabalhar nisso. Posso começar a olhar para a classe AgglomerativeClustering?
@vachanda Vá em frente! Podemos continuar postando aqui em quais trabalhamos para que outros saibam.
Obrigado por coordenar este @cgsavard
Observação para contribuidores: siga as diretrizes em: https://scikit-learn.org/stable/developers/contributing.html#guidelines -for-writing-documentation
@cgsavard , Existe uma lista de classes que apresentam discrepâncias ou temos que passar por cada uma delas e atualizá-las?
@vachanda Infelizmente não tenho uma lista. Acabei de examinar os arquivos e ver o que precisa ser atualizado.
Estou trabalhando em AffinityPropagation, SpectralCoclustering, SpectralBiclustering e Birch.
Estou trabalhando em FeatureAgglomeration, KMeans e MiniBatchKMeans.
Falando logicamente, se um parâmetro for opcional, o padrão não deveria ser None
sempre? Ter um parâmetro com um valor padrão diferente de None
sugere que ele deve ser obrigatório.
Se houver um padrão, isso geralmente significa que a literatura considerou este um valor padrão razoável, o que também sugere que este parâmetro tem um impacto no desempenho e, portanto, não deve ser opcional, mas deve apenas mencionar qual é o padrão. Esses parecem mais próximos dos parâmetros exigidos por definição, apenas fizemos uma escolha sensata para o usuário, para que ele possa alterá-lo ou não.
Ou, de forma mais prática, existe atualmente algum parâmetro opcional que encontramos com valores numéricos padrão, mas para o qual a especificação de None
gerará uma exceção? Isso também sugere que o parâmetro é realmente necessário, mas que um padrão sensato foi escolhido com base na literatura / pesquisa.
Ou talvez eu tenha confundido o significado de required
e optional
todos esses anos? Lol. Com certeza adoraria ajudar nisso de qualquer maneira!
@jmwoloso Estávamos realmente inconsistentes em relação ao uso de optional
e, portanto, recentemente decidimos removê-lo.
eu quero contribuir também. posso ir em frente com isso?
@glemaitre ok, isso definitivamente faz sentido. então estamos removendo o verbage optional
todos juntos, certo, enquanto também observamos os valores padrão nas strings de doc?
cada um deles que encontramos deve ser aberto como um problema separadamente ou como estamos encenando todo esse trabalho que estamos fazendo, já que várias pessoas estão trabalhando em várias coisas relacionadas a esse único problema?
@ cyrus303 @jmwoloso Você pode obter uma classe (no máximo um módulo) e corrigi-la. A ideia é remover o opcional e adicionar um padrão quando houver um (geralmente há um). Já que estamos tocando na documentação, devemos ter certeza de que o estilo na linha segue nosso novo guia de estilo: https://scikit-learn.org/dev/developers/contributing.html#guidelines -for-writing-documentation
Você pode mencionar em qual turma / módulo está trabalhando, abra um link de RP para evitar a duplicação de esforços :). Ansioso para revisá-lo.
Ei! Vou trabalhar em tree
classes ( tree.DecisionTreeClassifier
, tree.DecisionTreeRegressor
, tree.ExtraTreeClassifier
e tree.ExtraTreeRegressor
).
Também irei corrigir esse problema para o módulo neighbors
.
Vou fazer o módulo ensemble
.
@glemaitre alguma preferência em bool
vs. boolean
? vendo uma mistura de ambos em ensemble
, mesmo na mesma classe. pode muito bem colocá-los em forma enquanto estou corrigindo os padrões.
EDITAR:
idem para int
vs integer
. Estou presumindo int
nesse caso, mas queria confirmar.
EDITAR (novamente):
também vendo docstrings com valores inconsistentes em relação à assinatura __init__
para essa classe, por exemplo:
min_impurity_split
para RandomForestClassifier
a assinatura __init__
tem min_impurity_split=None
enquanto os docstrings dizem min_impurity_split : float, (default=0)
. Eu assumiria atualizar os docstrings para coincidir com a assinatura, uma vez que queremos manter o comportamento da classe consistente (ou seja, queremos os mesmos padrões passados na instanciação)?
@jmwoloso Você poderia consultar https://scikit-learn.org/stable/developers/contributing.html#guidelines -for-writing-documentation. Basicamente, você deve usar como padrão o nome do tipo python (bool, str, int, float)
a assinatura __init__ tem min_impurity_split = None enquanto os docstrings para ela dizem min_impurity_split: float, (padrão = 0). Eu assumiria atualizar os docstrings para coincidir com a assinatura, uma vez que queremos manter o comportamento da classe consistente (ou seja, queremos os mesmos padrões passados na instanciação)?
Devemos combinar o parâmetro na assinatura da função. Este parâmetro padrão de valor foi alterado e a docstring não foi atualizada.
Olá @cgsavard , gostaria de contribuir, mas esta será minha primeira vez, então preciso de alguma ajuda. Estou bastante familiarizado com o python, um pouco prático com editores de texto e recentemente passei pelo fork -> clone -> editar -> tutorial de fluxo de trabalho de RP aqui . Por favor, avise o próximo passo ... Obrigado!
Olá @cgsavard ,
Posso trabalhar no Imputer?
Olá @cgsavard , quero trabalhar na aula de linear_model
.
Também estou trabalhando em Neural Network
, Decomposition
, Feature Extraction
, Metrics
e Preprocess
classes.
alguém pode verificar meu pr # 15964 e ver por que o código cov está falhando. Esta é a minha primeira contribuição. Por favor, guie.
Ignore codecov. Este é um falso positivo, pois não alteramos o código. Vou revisar em breve o PR
Enviado do meu telefone - desculpe ser breve e pode ser um erro ortográfico.
Acabei de fazer minha primeira contribuição # 15988
Vou fazer o módulo naive_bayes
.
Acabei de fazer minha primeira contribuição # 16019
Olá a todos, trabalhando em sklearn/neighbors
, obrigado.
Contribuído para sklearn / semi_supervised. Obrigado
Olá @cgsavard , gostaria de contribuir também, vou fazer o módulo sklearn/svm
. Obrigado
Contribuído para sklearn / semi_supervised. Obrigado
Há alguma outra edição necessária no PR # 16042
@glemaitre em # 16105, tive que me aprofundar um pouco nas construções para buscar valores padrão, docstrings pareciam imprecisos e desatualizados às vezes.
Também tentei usar uma forma menos ambígua, concisa e matematicamente rigorosa de definir intervalos de parâmetros. por exemplo, mudei positive float
para float in (0, inf]
ou 0<= shrinkage <=1
para float in (0, 1)
. Resumindo, fiz o melhor que pude para ser conciso e preciso, mas preste 5% mais atenção ao revisar este PR. Obrigado.
@cgsavard , este é um assunto muito bom para um sprint! Se você concordar com isso, estou planejando adicioná-lo à nossa lista de Sprint. Eu resumi as aulas que já foram ministradas por um PR e seu PR correspondente aqui .
Você se importa em vincular a essência na descrição do problema? Isso tornará as informações disponíveis desde o início. Também posso pedir que você esclareça na descrição que cada RP deve endereçar um arquivo (no máximo um módulo) por vez, conforme explicado aqui ? Isso realmente ajudará os colaboradores e revisores! Muito obrigado!
Para os interessados neste assunto, o comando
git grep "optional.*default"
irá imprimir os arquivos ainda afetados por este problema (obrigado @ogrisel! :)).
@cgsavard Olá, gostaria de trabalhar em model_selection
@WiMLDS
@lopusz e eu queremos trabalhar em random_projection.py
Divirta-se com todos!
@adrinjalali @noatamir @WiMLDS
@ ETay203 e eu gostaríamos de trabalhar no sprint mean_shift
@WiMLDS_Berlin .
@ magda-zielinska e eu queremos trabalhar no pipeline.py
@adrinjalali @noatamir @WiMLDS
@lopusz e @ magda-zielinska e eu queremos trabalhar no kernel_approximation.py
Vou abordar o _optics.py agora
Reabertura: foi fechada pela palavra-chave "Correções" em # 16216.
Reabertura: foi fechada pela palavra-chave "Correções" em # 16207
Vou lidar com sklearn / linear_model / _coordinate_descent.py agora
Limpei o base.py e enviei o PR
Limpei discriminant_analysis.py e enviei um PR
Vou dar uma olhada agora em sklearn / gaussian_process / *. Py
Já existe uma longa proposta para os GPs
@lopusz minhas desculpas, que o PR estava tocando em outras questões do módulo GP, você pode ir em frente e trabalhar nisso se não se importar :)
@adrinjalali Obrigado por ficar de olho nisso!
Na verdade, eu não escaneei os PRs abertos bem o suficiente, então o fato de os GPs não serem feitos é mais um acidente;)
Vou me certificar de manter o controle do que é PRed.
E sim PR para GPs está chegando;)
Há mais alguma coisa a ser feita aqui?
Estou trabalhando em sklearn/decomposition/_dict_learning.py
O que resta fazer? Estou aberto para ajudar. . .
Descobrir o que resta é provavelmente um bom lugar para começar a ajudar :)
Olá, estive pesquisando para ver o que sobrou. Acho que ainda há algumas atualizações a serem feitas em alguns dos módulos examinados anteriormente.
Eu iria trabalhar com eles, começando com o módulo de cluster e poderia levantar um PR para cada módulo à medida que avançava?
Esta é minha primeira contribuição, por favor, me avise se não estou seguindo o processo corretamente, etc.
Obrigado!
Esta é a lista de funções, classes e módulos que ainda precisam ser corrigidos:
sklearn.feature_selection.SelectorMixin
sklearn.config_context
sklearn.set_config
sklearn.calibration.CalibratedClassifierCV
sklearn.cluster.OPTICS
sklearn.cluster.SpectralClustering
sklearn.cluster.affinity_propagation
sklearn.cluster.cluster_optics_dbscan
sklearn.cluster.cluster_optics_xi
sklearn.cluster.compute_optics_graph
sklearn.cluster.mean_shift
sklearn.cluster.spectral_clustering
sklearn.cluster.ward_tree
sklearn.cross_decomposition.CCA
sklearn.cross_decomposition.PLSCanonical
sklearn.cross_decomposition.PLSRegression
sklearn.cross_decomposition.PLSSVD
sklearn.datasets
sklearn.decomposition
sklearn.dummy
sklearn.ensemble.HistGradientBoostingRegressor
(experimental)sklearn.ensemble.HistGradientBoostingRegressor
(experimental)sklearn.feature_extraction.image.grid_to_graph
sklearn.feature_extraction.image.img_to_graph
sklearn.feature_extraction.text.CountVectorizer
sklearn.feature_extraction.text.HashVectorizer
sklearn.feature_selection
sklearn.impute
sklearn.inspection.partial_dependence
sklearn.inspection.permutation_importance
sklearn.inspection.permutation_importance
sklearn.inspection.PartialDependenceDisplay
sklearn.inspection.plot_partial_dependence
sklearn.isotonic.IsotonicRegression
sklearn.isotonic.check_increasing
sklearn.isotonic.isotonic_regression
sklearn.kernel_approximation
sklearn.kernel_ridge
sklearn.linear_model.PassiveAggressiveClassifier
sklearn.linear_model.LassoLars
sklearn.linear_model.OrthogonalMatchingPursuit
sklearn.linear_model.HuberRegressor
sklearn.linear_model.RANSACRegressor
sklearn.linear_model.TheilSenRegressor
sklearn.linear_model.PassiveAggressiveRegressor
sklearn.linear_model.orthogonal_mp
sklearn.linear_model.orthogonal_mp_gram
sklearn.manifold
sklearn.metrics
(exceto sklearn.metrics.confusion_matrix
, sklearn.metrics.roc_auc_score
, sklearn.metrics.max_error
sklearn.metrics.mean_poisson_deviance
, sklearn.metrics.mean_gamma_deviance
, sklearn.metrics.mean_tweedie_deviance
, sklearn.metrics.plot_confusion_matrix
, sklearn.metrics.plot_precision_recall_curve
)sklearn.mixture
sklearn.model_selection.GridSearchCV
sklearn.model_selection.ParameterGrid
sklearn.model_selection.ParameterSampler
sklearn.model_selection.RandomizedSearchCV
sklearn.model_selection.fit_grid_point
sklearn.multiclass
sklearn.multioutput
sklearn.neural_network
sklearn.preprocessing
sklearn.random_projection
sklearn.tree.export_graphviz
sklearn.tree.export_text
sklearn.tree.plot_tree
sklearn.utils
Espero não estar perdendo nada.
Oi. Vou tentar fazer uma passagem na documentação feature_selection
Pegamos a parte sklearn.mixture
Tomando cross_decomposition part
Para o 2020 Scikit-Learn Sprint, @ icoder18 e eu estamos participando da parte sklearn.random_projection
@adrinjalali completamos sklearn / blend
Trabalhando no sklearn.linear_model para o sprint com @genvalen
Leve sklearn.calibration.CalibratedClassifierCV
Trabalhando nisso para sklearn.utils.validation
Em seguida, abordaremos sklearn.utils.random
trabalhando em sklearn.impute
Trabalhando em sklearn.tree.plot_tree
A Tabela 14 pegará sklearn.neural_network
Veja sklearn.kernel_approximation
Pegando sklearn.inspection
A Tabela 14 levará sklearn.preprocessing
Pegando conjuntos de dados
Tomando sklearn.mixture # 17509
Lista atualizada.
Obrigado a todos!
Tomando sklearn.metrics para sprint
Tirando o módulo model_selection
@glemaitre Podemos atualizar a descrição disso para incluir que seria melhor enviar um arquivo por vez?
Olá, gostaria de contribuir. No entanto, é a minha primeira vez ... E não está claro para mim como posso saber em qual módulo ainda há trabalho a ser feito? Obrigado !
https://github.com/scikit-learn/scikit-learn/issues/15761#issuecomment -639461778 contém a lista de módulos que ainda precisam ser corrigidos.
Obrigado. Pegue sklearn.decomposition então.
Estou trabalhando em 'sklearn.isotonic.isotonic_regression'
Estou trabalhando em 'sklearn.multiclass.py'
Olá, posso tentar tirar o restante em sklearn.tree
? Esta seria a minha primeira vez contribuindo também.
Obrigado por se registrar, ótimo ter sua ajuda! Prossiga; Acho que todas as nossas atualizações de sprint foram encerradas.
Em 4 de julho de 2020, às 10:45, Ivan Wiryadi [email protected] escreveu:
Olá, posso tentar tirar o restante em sklearn.tree? Esta seria a minha primeira vez contribuindo também.-
Você está recebendo isto porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub ou cancele a inscrição.
Olá, gostaria de dar minha primeira contribuição. Posso fazer sklearn.multioutput?
Vou continuar com sklearn.utils, começando com _encode.py
Estou trabalhando em sklearn/decomposition/_dict_learning.py
Estou trabalhando em sklearn.kernel_ridge
no sprint
Olá, vou começar a trabalhar em sklearn.feature_extraction.image.img_to_graph
Estou trabalhando em sklearn.feature_extraction.text.CountVectorizer
Estou trabalhando em sklearn.sklearn.kernel_ridge
Estou trabalhando em sklearn.ensemble.HistGradientBoostingRegressor
"Eu estou trabalhando nisso"
nisto? @ Hoda1394
"Eu estou trabalhando nisso"
nisto? @ Hoda1394
@TahiriNadia corrigido.
@cgsavard Ei, posso trabalhar nisso? Eu sou um novato
Vou trabalhar nos arquivos em sklearn.datasets
.
Posso trabalhar em sklearn.linear_model._least_angle.py
@glemaitre Estou trabalhando em sklearn.linear_model._least_angle.py
e encontrei uma inconsistência no uso de method ='lar'
às vezes indica lars
às vezes lar
, essa inconsistência também está em código (não apenas na documentação), posso ver que lars
é o correto, você poderia confirmá-lo e eu farei um PR.
trabalhando em 'sklearn/ensemble/_hist_gradient_boosting/binning.py'
arquivos precisam de mudança:
sklearn / _config.py
sklearn / dummy.py
sklearn / multioutput.py
sklearn / linear_model / _huber.py
sklearn / linear_model / _theil_sen.py
sklearn / linear_model / _ridge.py
sklearn / linear_model / _omp.py
sklearn / linear_model / _sag.py
sklearn / externals / _lobpcg.py
sklearn / externals / _lobpcg.py
sklearn / utils / extmath.py
sklearn / utils / __ init__.py
sklearn / utils / graph.py
sklearn / utils / _mocking.py
sklearn / utils / sparsefuncs.py
sklearn / neighbours / _base.py
sklearn / gaussian_process / _gpc.py
sklearn / gaussian_process / kernels.py
sklearn / model_selection / _validation.py
~ sklearn / decomposition / _fastica.py ~
~ sklearn / decomposition / _dict_learning.py ~
~ sklearn / decomposition / _factor_analysis.py ~
~ sklearn / decomposition / _incremental_pca.py ~
~ sklearn / decomposition / _lda.py ~
~ sklearn / decomposition / _pca.py ~
~ sklearn / decomposition / _truncated_svd.py ~
~ sklearn / decomposition / _sparse_pca.py ~
~ sklearn / decomposition / _nmf.py ~
sklearn / manifold / _mds.py
sklearn / manifold / _spectral_embedding.py
sklearn / manifold / _t_sne.py
sklearn / ensemble / _hist_gradient_boosting / grower.py
sklearn / ensemble / _hist_gradient_boosting / binning.py
sklearn / metrics / _ranking.py
sklearn / tree / _classes.py
sklearn / preprocessing / _discretization.py
sklearn / preprocessing / _encoders.py linha 620
sklearn / neural_network / _multilayer_perceptron.py linha 1054
sklearn / covariance / _robust_covariance.py
Por favor, verifique se alguém já está trabalhando / trabalhou no arquivo que você escolheu
@sadakmed , para todos os "arquivos de decomposição", há uma solicitação de pull # 17739 em andamento.
trabalhando em "gaussian_process.GaussianProcessRegressor"
e "neighbors._base.py"
Olá, sou novo e gostaria de começar a contribuir. Você ainda precisa de ajuda com esse problema? há algum arquivo com o qual você ainda precisa de ajuda?
Ei @boricles!
Dê uma olhada em https://github.com/scikit-learn/scikit-learn/issues/15761#issuecomment -639461778 para obter uma lista com os módulos ainda a serem corrigidos.
@ alfaro96 obrigado. Eu dei uma olhada rápida agora mesmo. Vou selecionar um módulo esta noite e trabalhar nele.
Estou trabalhando em sklearn / config_context
Ei, pensei em ver se poderia ajudar com os documentos.
@ alfaro96 Eu gostaria de trabalhar em sklearn.feature_extraction.text.CountVectorizer
, se ainda não tiver sido feito, especialmente porque eu pessoalmente encontrei algumas armadilhas ao trabalhar com vetorizadores no passado.
Além disso, notei que embora sklearn.model_selection.learning_curve
sido atualizado, há um tutorial desatualizado usando a documentação antiga , devo deixá-lo como está? Ou vale a pena atualizar?
Olá @ alfaro96 ,
após as edições:
Vejo que sklearn.config_context
e sklearn.set_config
de sklearn.config_config.py
foram corrigidos para que possam ser retirados da lista de tarefas .
Eu gostaria de trabalhar em sklearn.utils
. Eu vi apenas uma instância de documentação de parâmetro onde 'opcional' é usado. Isso significa que eu preciso corrigir apenas essa instância, correto? Está em sklearn.utils._mocking.py
Ei, pensei em ver se poderia ajudar com os documentos.
Ei @madprogramer ,
@ alfaro96 Eu gostaria de trabalhar em
sklearn.feature_extraction.text.CountVectorizer
, se ainda não tiver sido feito, especialmente porque eu pessoalmente encontrei algumas armadilhas ao trabalhar com vetorizadores no passado.
~ Eu dei uma olhada na lista de verificação e na referência de sklearn.feature_extraction.text.CountVectorizer
e ela não parece estar corrigida. Um PR seria bem-vindo. ~
Editar: O sklearn.feature_extraction.text.CountVectorizer
já está corrigido.
Além disso, percebi que, embora
sklearn.model_selection.learning_curve
sido atualizado, há um tutorial desatualizado usando a documentação antiga , devo deixá-lo como está? Ou vale a pena atualizar?
Vale a pena atualizar, embora deva ser feito em um PR à parte.
Obrigada!
Olá @ alfaro96 ,
Ei @haiatn ,
após as edições:
Vejo quesklearn.config_context
esklearn.set_config
desklearn.config_config.py
foram corrigidos para que possam ser retirados da lista de tarefas .
Eu atualizei a lista de verificação .
Eu gostaria de trabalhar em
sklearn.utils
. Eu vi apenas uma instância de documentação de parâmetro onde 'opcional' é usado. Isso significa que eu preciso corrigir apenas essa instância, correto? Está emsklearn.utils._mocking.py
Essa é a ideia, embora as classes no arquivo sklearn.utils._mocking.py
não façam parte da API pública, então não acho que valha a pena atualizá-las.
No entanto, seria bom se você pudesse trabalhar em qualquer uma das outras funções, classes e módulos que estão pendentes de correção.
Obrigada!
Eu olhei a lista de verificação. Pelo que vi, o seguinte pode ser verificado na lista de verificação:
sklearn.feature_extraction.image.img_to_graph
sklearn.isotonic.IsotonicRegression
sklearn.isotonic.check_increasing
sklearn.ensemble.HistGradientBoostingRegressor
mas todo sklearn.ensemble
está OKPosso trabalhar em sklearn.manifold._spectral_embedding
e sklearn.feature_extraction.text.HashVectorizer
? Farei isso em relações públicas separadas. Eu acho que eles são os únicos arquivos restantes que precisam de conserto (assumindo que sklearn.feature_extraction.text.CountVectorizer
foi retirado).
Eu olhei a lista de verificação. Pelo que vi, o seguinte pode ser verificado na lista de verificação:
sklearn.feature_extraction.image.img_to_graph
sklearn.isotonic.IsotonicRegression
sklearn.isotonic.check_increasing
Obrigado @haiatn , atualizei a lista de verificação.
- Não encontrei o arquivo
sklearn.ensemble.HistGradientBoostingRegressor
mas todosklearn.ensemble
está OK
Os sklearn.ensemble.HistGradientBoostingClassifier
e sklearn.ensemble.HistGradientBoostingRegressor
estão neste arquivo: scikit-learn/sklearn/ensemble/_hist_gradient_boosting/gradient_boosting.py
. No entanto, eles já foram corrigidos.
Posso trabalhar em
sklearn.manifold._spectral_embedding
esklearn.feature_extraction.text.HashVectorizer
? Farei isso em relações públicas separadas. Eu acho que eles são os únicos arquivos restantes que precisam de conserto (assumindo quesklearn.feature_extraction.text.CountVectorizer
foi retirado).
Eu dei uma olhada no módulo sklearn.manifold
e sklearn.feature_extraction.text.HashingVectorizer
e eles já foram corrigidos (eu atualizei a lista de verificação de acordo).
No entanto, existem várias funções no módulo sklearn.utils
que ainda devem ser corrigidas.
Obrigado @haiatn , nós realmente apreciamos sua ajuda!
Agora vou trabalhar em sklearn.utils._estimator_html_repr
, sklearn.utils.deprecation
e sklearn.utils._testing
Vou terminar sklearn.utils. Existem apenas 3 arquivos que encontrei que precisam de conserto.
hey @ alfaro96 ,
você poderia revisar minhas solicitações de pull aberto? Acho que são os últimos.
Ei @haiatn!
Já dei uma olhada em seus PRs abertos.
Obrigada!
Agora que mesclamos o que sobrou de sklearn.utils e foi o último da lista de verificação , terminamos?
Há uma última solicitação de pull # 18025 aberta, então esse problema pode ser resolvido.
Olá,
Eu quero começar a contribuir. Existe alguma classe pendente para fixação de documentos de valores padrão? Se houver, então eu posso aceitar.
Olá, novo no código aberto, estou ansioso para consertar o documento, se alguma coisa precisar ser consertada.
Comentários muito úteis
Falando logicamente, se um parâmetro for opcional, o padrão não deveria ser
None
sempre? Ter um parâmetro com um valor padrão diferente deNone
sugere que ele deve ser obrigatório.Se houver um padrão, isso geralmente significa que a literatura considerou este um valor padrão razoável, o que também sugere que este parâmetro tem um impacto no desempenho e, portanto, não deve ser opcional, mas deve apenas mencionar qual é o padrão. Esses parecem mais próximos dos parâmetros exigidos por definição, apenas fizemos uma escolha sensata para o usuário, para que ele possa alterá-lo ou não.
Ou, de forma mais prática, existe atualmente algum parâmetro opcional que encontramos com valores numéricos padrão, mas para o qual a especificação de
None
gerará uma exceção? Isso também sugere que o parâmetro é realmente necessário, mas que um padrão sensato foi escolhido com base na literatura / pesquisa.Ou talvez eu tenha confundido o significado de
required
eoptional
todos esses anos? Lol. Com certeza adoraria ajudar nisso de qualquer maneira!