/cached-users

Repositório destinado para o desafio de python da empresa Instruct

Primary LanguagePython

Cached Users

Prova Técnica para a vaga de Desenvolvedor(a) Python Junior Remoto na empresa Instruct.

Bibliotecas Utilizadas:

  1. time
  2. os
  3. sys
  4. csv
  5. requests
  6. json

Requisitos

  1. Solução deve funcionar com Python 3.6 ✔️
  2. Utilização da biblioteca requests ✔️
  3. Arquivo deverá começar vazio ✔️
  4. Ao executar o programa uma vez para um determinado username deve adicionar apenas os dados do username consultado ✔️
  5. Em consultas futuras desse username, deve retornar os dados do CSV, sem fazer consulta na API ✔️

Solução

  • Para o cache foi utilizado um dicionário de dicionários para facilitar a busca indexada pelo própio nome do usuário.

Exemplificando a estrutura de dados utilizada:

cache = {
    'Bret' : {
        'email': 'Sincere@april.biz',
        'website': 'hildegard.org',
        'hemisphere': 'sul',
        'username': 'Bret' 
    },
    'Antonette' : {
        'email': 'Shanna@melissa.tv',
        'website': 'anastasia.net',
        'hemisphere': 'sul',
        'username': 'Antonette' 
    }
}

# Então para buscar o usuário Bret é só utilizar

user = cache['Bret']
  • O formato de utilização do csv abaixo é para facilitar a exibição de dados na tela.

Formato dos dados no csv:

username,email,website,hemisphere
Bret,Sincere@april.biz,hildegard.org,sul
Antonette,Shanna@melissa.tv,anastasia.net,sul