Giter Site home page Giter Site logo

plmcbks's Introduction

PlmcBks

Esta é uma biblioteca de código escrita em Python. Ela fornece vários meios de interagir com o nosso acervo de livros.

Uso

Não sou bom documentando coisas, então irei demonstrar o uso desta biblioteca com explicações rápidas e uso prático.

Instalação

Você pode realizar a instalação usando o pip. É necessário que você possua pelo menos o Python 3.6 e um sistema operacional Linux para isso:

Código
python3 -m pip install --force-reinstall \
    --disable-pip-version-check \
    --no-warn-script-location \
    --user \
    --upgrade \
    'git+https://github.com/PolemicBooks/PlmcBks'

As informações sobre todos os livros são armazenadas localmente em arquivos json e compactados usando o xz. Dependendo da sua máquina, pode demorar entre 5 a 10 minutos para que a biblioteca seja completamente importado durante uma sessão.

Tipos

O PlmcBks possui 2 tipos principais, o Dict e o List. Eles são usados como base para todos os demais tipos (subclasses).

1. Dict

O Dict se baseia nos conceitos principais do tipo nativo dict. Você pode interagir com objetos desse tipo da seguinte forma:

Código
from plmcbks.types import Dict

simple_dict = Dict()

# Associando valores 
simple_dict.foo = "bar"
simple_dict["bar"] = "foo"

# Exibindo valores
print(simple_dict.foo)
print(simple_dict["bar"])

# Excluindo valores
del simple_dict.foo
del simple_dict["bar"]
Resultado
bar
foo
Comentário

Objetos desse tipo também podem ser facilmente convertidos para um dicionário usando o método nativo dict().

2. List

O List se baseia nos conceitos principais do tipo nativo list. Você pode interagir com objetos desse tipo da seguinte forma:

Código
from plmcbks.types import List

simple_list = List()

# Adicionando valores 
simple_list.append("bar")
simple_list.append("foo")

# Interagindo entre os valores
for item in simple_list:
    print(item)
Resultado
bar
foo
Comentário

Objetos desse tipo também podem ser facilmente convertidos para listas usando o método nativo list().

Entidades

Entidades são objetos representado informações sobre um autor, narrador, editora e entre outros.

1. Navegação entre entidades

Veja abaixo alguns exemplos:

Código
# Importamos todas as listas de entidades disponíveis
from plmcbks import (
    authors,
    artists,
    narrators,
    publishers,
    categories,
    types
)

# Exibimos o nome da primeira entidade presente na lista de autores.
print(authors[0].name)

# Exibimos o nome da primeira entidade presente na lista de artistas.
print(artists[0].name)

# Exibimos o nome da primeira entidade presente na lista de narradores.
print(narrators[0].name)

# Exibimos o nome da primeira entidade presente na lista de editoras.
print(publishers[0].name)

# Exibimos o nome da primeira entidade presente na lista de categorias.
print(categories[0].name)

# Exibimos o nome da primeira entidade presente na lista de tipos.
print(types[0].name)
Resultado
& e Décio Medeiros Carlos Castro
774 (Nanashi)
A Hora da História
#Incognitos
#StayAtHome
Audiobook
Comentário

Os demais atributos presentes em uma entidade são:

  • id
    • Uma identificação numérica representando a posição em que a entidade em questão se encontra na lista.
  • total_books
    • Uma identificação numérica representando a quantidade total de livros escritos, publicados, narrados ou presentes naquela entidade.

2. Obtendo livros de uma entidade

Cada entidade possui um método chamado get_books(). Quando chamado, ele retorna uma lista de todos os livros presentes nela.

No exemplo abaixo, usamos o get_books() para obter todos os livros do autor Michael Withey:

Código
from plmcbks import authors, books

# Obtemos o objeto que representa o autor em questão
author = authors["Michael Withey"]

# Obtemos todos os seus livros
results = author.get_books(books)

# Interagimos entre os livros retornados
for book in results.iter():
    print(f"Title: {book.title}")
    print(f"Author: {book.author.name}")
    print(f"Type: {book.type.name}\n")
Resultado
Title: Descontruindo Seu Oponente: Como Identificar E Refutar Argumentos Falaciosos
Author: Michael Withey
Type: Ebook

Title: Descontruindo seu oponente: como identificar e refutar argumentos falaciosos
Author: Michael Withey
Type: Audiobook
Comentário

Já que a dinâmica de obtenção de entidades é a mesma para todas as demais listas desse gênero, você também pode obter os livros de cada uma delas usando o mesmo método demonstrado acima.

Livros

A partir daqui veremos exemplos sobre como pesquisar por livros e obter informações sobre documentos e imagens.

1. Pesquisando por livros

Veja os exemplos abaixo:

Código
from plmcbks import books

# Pesquisa "rápida"
results_fast = books.fast_search("Python")

for book in results_fast.iter():
    print(f"Title: {book.title}")
    print(f"Author: {book.author.name}")
    print(f"Type: {book.type.name}\n")

# Pesquisa "lenta"
results_slow = books.slow_search("Python")

for book in results_slow.iter():
    print(f"Title: {book.title}")
    print(f"Author: {book.author.name}")
    print(f"Type: {book.type.name}\n")
Resultados
Title: A História (quase) Definitiva De Monty Python: Cinco Britânicos E Um Americano Que Reinventaram O Nonsense E Viraram O Mundo De Ponta-cabeça
Author: Thiago Meister Carneiro
Type: Ebook

Title: Python: Escreva Seus Primeiros Programas
Author: Felipe Cruz
Type: Ebook

Title: Trilhas Python: Programação Multiparadigma E Desenvolvimento Web Com Flask
Author: Eduardo Pereira
Type: Ebook

Title: Introdução À Visão Computacional: Uma Abordagem Prática Com Python E Opencv
Author: Felipe Barelli
Type: Ebook

Title: Consumindo A Api Do Zabbix Com Python
Author: Janssen Dos Reis Lima
Type: Ebook

Title: Aprenda Python Básico - Rápido e Fácil de entender
Author: Felipe Galvão
Type: Ebook

Title: Data Science do zero: Primeiras regras com o Python
Author: Joel Grus
Type: Ebook

Title: Curso Intensivo de Python
Author: Eric Matthes
Type: Ebook

Title: Python e Django
Author: Ramiro B. da Luz
Type: Ebook

Title: Python: Escreva seus primeiros programas
Author: Felipe Cruz
Type: Ebook

Title: Programação em Python: Introdução à programação com múltiplos paradigmas
Author: João Pavão Martins
Type: Ebook

Title: Python para Desenvolvedores
Author: Luiz Eduardo Borges
Type: Ebook

Title: Computação Científica com Python
Author: Flávio Codeço Coelho
Type: Ebook

Title: Pense em Python
Author: Allen B. Downey
Type: Ebook

Title: Introdução a Python - Módulo A
Author: Josué Labaki
Type: Ebook

Title: Introdução a Python - Módulo B
Author: Josué Labaki, Emanuel Woiski
Type: Ebook

Title: Aprendendo Python
Author: Mark Lutz/ David Ascher
Type: Ebook

Title: Automatize Tarefas Maçantes com Python
Author: Al Sweigart
Type: Ebook

Title: Data Science do Zero: Primeiras Regras Com o Python
Author: Joel Grus
Type: Ebook

Title: A Byte of Python
Author: Swaroop, C.H.
Type: Ebook
Comentário

As diferenças entre os dois métodos acima são:

  1. Pesquisa lenta

O método de pesquisa lenta exclui algumas palavras consideradas irrelevantes e também desconsidera a posição em que as palavras na pesquisa original aparecem.

  1. Pesquisa rápida

O método de pesquisa rápida, ao contrário do método de pesquisa lenta, não exclui palavras consideradas irrelevantes e também leva em conta a posição em que as palavras na pesquisa original aparecem.

A pesquisa lenta lhe trará resultados menos exatos, só que possivelmente mais relevantes. A pesquisa rápida lhe trará resultados mais exatos, só que possivelmente menos relevantes.

plmcbks's People

Contributors

snwmds avatar useername avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.