Giter VIP home page Giter VIP logo

markyp's Introduction

Hi,

Iโ€™m Peter Volf, SW engineer for many years now with a master's degree in computer science, located in Hungary.

My main professional interest has been Python ever since I first started using it around ~2008. I really enjoy working with React and TypeScript, and doing full-stack application development as well. I'm also interested in Linux and the open-source world in general. At university, I specialized in network/graph analysis and machine learning -- it was a long time ago, it would be great to have the time to pick these up again.

I work mostly on greenfield web projects. When my time allows -- unfortunately not nearly as often as I'd like these days -- I like to do some open-source work.

Some of my more interesting hobby projects are:

  • localclustering is a local graph clustering algorithm with a graphscraper backend (JOSS publication, analysis).
  • motorhead is an async almost-ODM for MongoDB with vanilla Pydantic v2.
  • fasthx is an HTMX utility for FastAPI.
  • graphscraper is an SQL graph database with an in-memory cache and a built-in, on-demand web scraper.
  • mastodon-social-graph is a graphscraper implementation that loads the social graph of a Mastodon instance.
  • uspto-patent-citation-graph is a graphscraper implementation that loads the citation graph from USPTO's API.
  • markyp is an XML templating engine and parser tool.
  • markyp-html is an HTML implementation based on markyp that lets you write static webpages 100% in Python (i.e., without Jinja-like templating).
  • markyp-bootstrap4 is a full Bootstrap4 implementation based on markyp-html.

My recent professional projects:

  • Currently I work on AI-assisted digital healthcare services AIP Clinic and AIP Derm, on the LNGx platform, and on various internal business tools.
  • Horizon Planner, an enterprise resource planning and project management application (tech lead/principal engineer, 2019-2023).

I also tutor engineers, from juniors to seniors, primarily focusing on Python and system architecture/design.

I'm available for consulting and contract work, you can find me on:

markyp's People

Contributors

dependabot[bot] avatar volfpeter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

markyp's Issues

CI configuration

Test cases have already been implemented, so only the config is needed i guess.

Just some questions about minor improvements

This is really a wonderful module actually, but I still have some doubts about some of the implementations in this module.

I'd like to ask some stuff that I don't understand why it exist in this code.

  1. At this line
class BaseElement(IElement):
    def __str__(self) -> str:
        ...
        return f"<{name} {properties_str}>{children_str}</{name}>"
        #               ^
        #     questionable space here

Because, that space is included to the string format output by default.
But it should not be there, if properties_str is empty
so that I'd be nice if the implementation is like this

class BaseElement(IElement):
    def __str__(self) -> str:
        name = self.element_name
        properties = self.get_element_properties()
        properties_str = f" {format_properties(properties)}" if properties is not None else ""
        ...
        return f"<{name}{properties_str}>{children_str}</{name}>"
  1. Also, at these lines
item_count = len(items)
for i, item in enumerate(items):
    yield item
    if i < item_count - 1:
        yield sep()

this can be changed into a better form as like this

iterator = iter(items)
yield next(iterator)
for item in iterator:
    yield sep()
    yield item

And also, can i know why you create a copy of the separator object each time you yield it?
And why not just instantiate it once, and yield it each time it's required within the same loop?

Feature request: Accept attribute value as list

This is useful when building HTML, where element often has multiple class name. For example, we can code:

span('', class_=('icon', 'icon-user'))

to produce

<span class="icon icon-user"></span>

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.