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

Group #82

Open
4 tasks
alvarofpp opened this issue Aug 28, 2019 · 1 comment
Open
4 tasks

Group #82

alvarofpp opened this issue Aug 28, 2019 · 1 comment
Labels
enhancement New feature or request

Comments

@alvarofpp
Copy link
Member

Group

  • Tipo: Refatoração/Nova implementação.
  • Depende da issue: Package e File #81.
    • Status: Totalmente
  • Branch: no final, deverá ser feito um merge para a branch version-2.

Checklist:

  • Implementar feature;
  • Adicionar testes;
  • Atualizar docstring;
  • Atualizar documentação.

Para entender melhor

Da mesma forma que Package esta para File, Group esta Package, ou seja, será uma classe que conterá vários Package. Será uma classe que terá uma lista de Package, podendo realizar manipulações neles e, consequentemente, nos seus arquivos.

Observação: vale ressaltar que o Group atualmente serve para representar as chamadas e operações envolvendo grupos no CKAN da UFRN. A intenção dessa remodelagem é que o Group passe a representar um grupo de pacotes que existe, não mais genérico que isso.

Dados de Group

Usando a requisição http://dados.ufrn.br/api/rest/group/despesas-e-orcamento como exemplo, acho interessante a classe conter os seguintes dados:

Dado Exemplo de valor
display_name "Despesas e Orçamentos"
title "Despesas e Orçamentos"
name "despesas-e-orcamento"
package_count 23
packages Array com os pacotes, no caso serão o nome dos 23 pacotes do grupo
created "2016-09-06T17:54:50.039574"

Pensei no atributo description, porém normalmente vem vazio. O mesmo vale para o atributo extras.

Boa parte dos campos seriam para permitir q o programador conheça melhor o grupo, sendo que tem atributos "redundantes" que valeriam o debate para decidirmos se iremos colocar ou não, como: display_name e title.

Métodos de Group

É interessante implementar métodos como os descritos em Package, sendo que aplicado a sua própria lista. Dessa forma, métodos como filter() devem servir para aplicar aos pacotes no geral, como a possibilidade de aplicar aos seus respectivos arquivos.

Exemplo de métodos

Exemplo de dois métodos possíveis para filter():

# Group de pacotes
group
# Aplicando filtro nos pacotes do grupo
group_discentes = group.filter(lambda package: "discente" in package.name)
# Aplicando filtro nos arquivos dos pacotes do grupo
group_not_dictionary= group.filter_files(lambda file: not file.is_dictionary())
@alvarofpp alvarofpp added enhancement New feature or request question Further information is requested labels Aug 28, 2019
@alvarofpp alvarofpp added this to the Versão 1.0.0 -> 2.0.0 milestone Aug 28, 2019
This was referenced Aug 28, 2019
@itepifanio
Copy link
Member

itepifanio commented Sep 4, 2019

display_name "Despesas e Orçamentos"
title "Despesas e Orçamentos"

Acho que só o title pode ser exibido, talvez mudar o name por resource que é o que a gente utiliza para passar para download. Outra, na próxima versão nós iremos utilizar as coisas como dataframe, então essa parte do filter() deve ser implementada como group_discentes = group[group.name == "discente"] também.

@nymarya nymarya removed the question Further information is requested label Sep 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants