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

Components Demo Page #359

Merged
merged 5 commits into from
Jul 8, 2024
Merged

Components Demo Page #359

merged 5 commits into from
Jul 8, 2024

Conversation

anish-work
Copy link
Contributor

@anish-work anish-work commented May 15, 2024

Q/A checklist

  • If you add new dependencies, did you update the lock file?
poetry lock --no-update
  • Run tests
ulimit -n unlimited && ./scripts/run-tests.sh
  • Do a self code review of the changes - Read the diff at least twice.
  • Carefully think about the stuff that might break because of this change - this sounds obvious but it's easy to forget to do "Go to references" on each function you're changing and see if it's used in a way you didn't expect.
  • The relevant pages still run when you press submit
  • The API for those pages still work (API tab)
  • The public API interface doesn't change if you didn't want it to (check API tab > docs page)
  • Do your UI changes (if applicable) look acceptable on mobile?
  • Ensure you have not regressed the import time unless you have a good reason to do so.
    You can visualize this using tuna:
python3 -X importtime -c 'import server' 2> out.log && tuna out.log

To measure import time for a specific library:

$ time python -c 'import pandas'

________________________________________________________
Executed in    1.15 secs    fish           external
   usr time    2.22 secs   86.00 micros    2.22 secs
   sys time    0.72 secs  613.00 micros    0.72 secs

To reduce import times, import libraries that take a long time inside the functions that use them instead of at the top of the file:

def my_function():
    import pandas as pd
    ...

@anish-work anish-work requested a review from devxpy May 15, 2024 11:41
@devxpy
Copy link
Member

devxpy commented Jun 11, 2024

Can you use something like eval() or inspect.getsource() here to avoid duplicating the code?

@anish-work
Copy link
Contributor Author

Can you use something like eval() or inspect.getsource() here to avoid duplicating the code?

where exactly did not catch the problem here

@devxpy
Copy link
Member

devxpy commented Jun 24, 2024

Thanks, this looks nice. One last thing - if you use decorators here it will make stuff more reusable and also allow you to change layout in the future easily.

def show_source_code(fn):

	@wraps(fn)
	def wrapper(*args, **kwargs):
		ret = fn(*args, **kwargs)
		code_block(inspect.getsource(fn))
        return ret

	return wrapper


@show_source_code
def text_area(...):
    ...


# and then you normally call this
text_area(...)

@anish-work
Copy link
Contributor Author

wraps

This is done, please check

@devxpy devxpy merged commit 714a663 into master Jul 8, 2024
1 check passed
@devxpy devxpy deleted the components-doc branch July 8, 2024 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants